Mybatis-plus 主键生成策略之主键自增问题
Mybatis-plus提供了多种主键生成策略, 可以在Pojo类中主键上加注解进行配置,例如数据库主键自增 @TableId(type=IdType.AUTO)IdType包括以下几类:AUTO : 数据库主键自增INPUT: 用户自行输入ID_WORKER: 分布式全局唯一ID, 长整型UUID: 32位UUID字符串NONE: 无状态ID_WORKER_STR: 分布式全局唯一ID 字符串类
·
Mybatis-plus提供了多种主键生成策略, 可以在Pojo类中主键上加注解进行配置,例如数据库主键自增 @TableId(type=IdType.AUTO)
IdType包括以下几类:
- AUTO : 数据库主键自增
- INPUT: 用户自行输入
- ID_WORKER: 分布式全局唯一ID, 长整型
- UUID: 32位UUID字符串
- NONE: 无状态
- ID_WORKER_STR: 分布式全局唯一ID 字符串类型
单一应用时,我们一般设置主键自增,即使用@TableId(type=IdType.AUTO), 数据库中的主键为:
分布式应用时,我们需要生成分布式ID,可以选择使用@TableId(type=IdType.ID_WORKER),数据库中的主键为:
当IdType的类型为ID_WORKER、UUID或者ID_WORKER_STR时,主键由MyBatis-plus的IdWorker类生成,IdWorker中调用了分布式唯一 ID 生成器 - Sequence(一个分布式高效有序ID生产黑科技工具)。
Note:
如果读者想要切换主键生成策略,那么在切换之前,最好对数据库表执行"TRUNCATE TABLE 'table name'" 操作,不然会有影响。
更多推荐
已为社区贡献12条内容
所有评论(0)