问题描述:当我们在往表中插入一条数据时候,总是需要手动给表的唯一主键ID赋值很麻烦,mybatis-plus中提供了更方便的赋值方式。

如下图,我们创建一个表和对应的bean
mybatis-plus源码分析如何自动插入数据库ID
mybatis-plus源码分析如何自动插入数据库ID
这里id上面添加了注解@TableId,并且赋值为IdType.ID_WORKER_STR,我们点开IdType看说明:
mybatis-plus源码分析如何自动插入数据库ID
再次查看源码,看一下@TableId是如何被调用的:
mybatis-plus源码分析如何自动插入数据库ID
通过debug,最后定位到MybatisDefaultParameterHandler的populateKeys()方法中,我们看到不同的IdType会调用IdWorker的不同取值方法,进入IdWorker类
mybatis-plus源码分析如何自动插入数据库ID
可以看到这里的getId是基于twitter的snowflake算法来实现ID的唯一性,而UUID我们是很熟悉的,推荐大家使用Snowflake获取ID的算法。
题外话:这里除了在类上面通过添加注解的方式来自动注入ID的值以外,还可以通过的mybatis全局配置:
mybatis-plus源码分析如何自动插入数据库ID
如果这里配置以后,bean上面再添加注解,这里的全局配置就失效了,如果没有添加注解,就按照全局配置来。

相关文章:

  • 2021-11-17
  • 2021-07-08
  • 2021-09-22
  • 2022-01-02
  • 2021-11-09
  • 2022-12-23
  • 2022-01-13
  • 2022-12-23
猜你喜欢
  • 2021-10-30
  • 2021-04-04
  • 2021-06-20
  • 2021-10-17
  • 2021-10-03
  • 2022-12-23
  • 2021-05-31
相关资源
相似解决方案