1. ID_WORKER
MyBatis-Plus默认的主键策略是:ID_WORKER 全局唯一ID
参考资料:分布式系统唯一ID生成方案汇总:https://www.cnblogs.com/haoxinyue/p/5208136.html
2. 自己指定主键生成策略
在mybatis-plus中想要自己指定主键策略需要在你的实体类中的id属性上面加上注解:@TableId()
查看源码,发现有个IdType,
再点进去,发现里面有很多主键生成策略。
分别对应的是:
- AUTO(0):数据库ID自增。
- NONE(1):该类型为未设置主键生成策略。
- INPUT(2):用户输入ID、该类型可以通过自己注册自动填充插件进行填充。简单来说就是使用了这个策略要我们自己输入id,不会自动生成id。
- ID_WORKER(3):全局唯一ID (idWorker),mp自带策略,会生成19位的值,需要的注意的是这个只能放在数字类型的主键中。
- UUID(4):全局唯一ID (UUID)。
- ID_WORKER_STR(5):字符串全局唯一ID (idWorker 的字符串表示)。同ID_WORKER不同的是它是只能放在String类型的主键中。
其中在mybatis-plus中默认的是ID_WORKER与 ID_WORKER_STR,当我们没有指定生成策略的时候,他会根据你的主键的数据类型来选择ID_WORKER或者ID_WORKER_STR,这两种主键生成策略使用的是snowflake算法,也就是雪花算法。