MyBatis-Plus—主键生成策略
# MyBatis-Plus—主键生成策略
MyBatis-Plus 数据库插入时的id的默认值为:全局的唯一id
# 1、ID_WORKER
默认 ID_WORKER 全局唯一id
分布式系统唯一id生成:https://www.cnblogs.com/haoxinyue/p/5208136.html
snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为 毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味 着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0。可以保证几乎全球唯 一!
# 2、主键自增
我们需要配置主键自增:
- 实体类字段上 @TableId(type = IdType.AUTO)
- 数据库字段一定要是自增!
再次测试插入即可!这时主键就是自增的状态。
# 其与类型的源码解释
public enum IdType {
AUTO(0), // 数据库id自增
NONE(1), // 未设置主键
INPUT(2), // 手动输入
ID_WORKER(3), // 默认的全局唯一id
UUID(4), // 全局唯一id uuid
ID_WORKER_STR(5); //ID_WORKER 字符串表示法
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
编辑 (opens new window)