MybatisPlus主键策略(type=IdType.ASSIGN()

  本篇文章为你整理了MybatisPlus主键策略(type=IdType.ASSIGN()的详细内容,包含有 MybatisPlus主键策略(type=IdType.ASSIGN,希望能帮助你了解 MybatisPlus主键策略(type=IdType.ASSIGN。

   MybatisPlus

  主键策略(

  type=IdType.ASSIGN_ID

  等详解)

  

  三,主键策略

  我们可以通过

  @TableId

  注解的

  

  类型属性来设置主键

  id

  的增长策略,⼀共有⼏个多个主键策略,可根据情况⾃由配置。

  

  1

  ,

  ASSIGN_ID

  (雪花算法)

  

  如果不设置

  类型

  值,默认则使⽤

  IdType.ASSIGN_ID

  策略(⾃

  3.3.0

  起)。该策略会使⽤雪花算法⾃动⽣成

  主键

  ID

  ,主键类型为

  长

  或

  字符串

  (分别对应

  的

  MySQL

  的表字段为

  BIGINT

  和

  VARCHAR

  )

  提⽰:该策略使⽤接⼝

  IdentifierGenerator

  的⽅法

  nextId

  (以实现类为

  DefaultIdentifierGenerator

  雪花算法),下⾯是雪花算法介绍:

  雪花算法(雪花)是微博开源的分布式

  ID

  ⽣成算法其核⼼思想就是:使⽤⼀个

  64

  位的长型的数字作为全局唯⼀

  ID

  。在分布式系统中的

  应⽤⼗分⼴泛,且

  ID

  引⼊了时间戳,基本上保持⾃增的。

  1

  个

  2

  3

  4

  5

  6

  7

  8

  @Data

  public

  

  class

  

  UserInfo{

  //

  指定主键⽣成策略使⽤雪花算法(默认策略)

  @TableId(type=IdType.ASSIGN_ID)

  private

  

  Longid;

  private

  

  StringuserName;

  private

  

  StringpassWord;

  }

  

  2

  ,

  ASSIGN_UUID

  (排除中划线的

  UUID

  )

  

  如果使⽤

  IdType.ASSIGN_UUID

  策略,并重新⾃动⽣成排除中划线的

  UUID

  作为主键。主键类型为

  String

  ,

  对应

  MySQL

  的表分段为

  VARCHAR

  (

  32

  )

  提⽰:该策略使⽤接⼝

  IdentifierGenerator

  的⽅法

  nextUUID

  1

  个

  2

  3

  4

  5

  6

  7

  8

  @Data

  public

  

  class

  

  UserInfo{

  //

  指定主键⽣成策略为不含中划线的

  UUID

  @TableId(type=IdType.ASSIGN_UUID)

  private

  

  Stringid;

  private

  

  StringuserName;

  private

  

  StringpassWord;

  }

  

  3

  ,

  AUTO

  (数据库

  ID

  ⾃增)

  对于像

  MySQL

  这样的⽀持主键⾃动递增的数据库,我们可以使⽤

  IdType.AUTO

  策略。

  1

  个

  2

  3

  4

  5

  6

  7

  8

  @Data

  public

  

  class

  

  UserInfo{

  //

  指定主键使⽤数据库

  ID

  ⾃增策略

  @TableId(type=IdType.AUTO)

  private

  

  Integerid;

  private

  

  StringuserName;

  private

  

  StringpassWord;

  }

  4

  ,

  INPUT

  (插⼊前⾃⾏设置主键值)

  (

  1

  )针对有序列的数据库:

  Oracle

  ,

  SQLServer

  等,当需要建⽴⼀个⾃增序列时,需要⽤到序列。

  提⽰:

  在

  Oracle11g

  中,设置⾃增扩,需要先创建序列(

  SQUENCE

  )再创建⼀个触发器(

  TRIGGER

  )。

  在

  Oracle12c

  中,只需要使⽤

  IDENTITY

  属性就可以了,和

  MySQL

  ⼀样简单。

  

  以上就是MybatisPlus主键策略(type=IdType.ASSIGN()的详细内容,想要了解更多 MybatisPlus主键策略(type=IdType.ASSIGN的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: