主键生成策略
2023/2/23
主键生成策略
主键生成策略类型
AUTO
数据库自增ID
需要数据库设置id字段为自增才可以,否则会报错
ID_WORKER
该项为MyBatis-Plus的默认策略,采用雪花算法生成对应的id值。
snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。
UUID
UUID形式
INPUT
自定义模式,需要自己指定ID的值,如果不指定,id值为null
ID_WORKER_STR
雪花算法的字符串表示形式
NONE
不指定主键生成策略
主键生成策略的设置
全局配置
#MyBatis-Plus相关配置
mybatis-plus:
configuration:
#配置日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
#配置mp的主键策略为自增
id-type: auto
# 设置实体类所对应的表的统一前缀
table-prefix: t_实体类配置
在实体类的主键属性上增加注解即可指定相应的主键策略
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("puser")
public class User {
@TableId( type = IdType.ID_WORKER)
private int id;
private String name;
private int age;
private String email;
}参考资料: 分布式系统唯一ID生成方案汇总
https://www.cnblogs.com/haoxinyue/p/5208136.html
https://zhuanlan.zhihu.com/p/107939861
