本篇文章为你整理了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。