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'" 操作,不然会有影响。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐