Mybatis获取自增主键并发问题,Jdbc3KeyGenerator
已知:
在数据库表自增的情况下,mybatis执行完一条insert sql后,Jdbc3KeyGenerator获取主键的逻辑,是在insert语句后获取最大的id。
场景:
线程A:插入insert语句先执行,然后执行Jdbc3KeyGenerator获取最大的id。
那么在线程A的Jdbc3KeyGenerator获取最大id前一时刻,线程B:又有insert语句执行了。
问:
那线程A获取到的id是线程B执行insert后的id,还是线程A执行insert的id。
        mybatis
      
        数据库
      
        mysql
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 HarmonyOS taskpool线程并发问题 
1135浏览  • 1回复 待解决
并发问题和内存数据刷盘问题 
5400浏览  • 1回复 待解决
MySQL 非自增的字符串主键会加间隙锁吗? 
5117浏览  • 1回复 待解决
HarmonyOS 关系型数据库是否需要考虑并发问题? 
1396浏览  • 1回复 待解决
NAPI开发问题 
1116浏览  • 1回复 待解决
sharding-jdbc分库分表的问题 
3029浏览  • 1回复 待解决
HarmonyOS 线程开发问题 
1139浏览  • 1回复 待解决
HarmonyOS APP分发问题 
1154浏览  • 1回复 待解决
HarmonyOS 按需分发问题 
1537浏览  • 1回复 待解决
HarmonyOS 应用分发问题 
1213浏览  • 1回复 待解决
HarmonyOS inhouse方式分发问题 
1281浏览  • 1回复 待解决
HarmonyOS 关于flutter开发问题 
1314浏览  • 1回复 待解决
HarmonyOS 上架分发问题 
1443浏览  • 1回复 待解决
HarmonyOS 如何获取自定义组件的高度? 
1504浏览  • 1回复 待解决
HarmonyOS 子组件内如何获取自身大小 
1388浏览  • 1回复 待解决
HarmonyOS Web组件开发问题咨询 
1556浏览  • 1回复 待解决
JSUI中TouchMove连续触发问题 
4635浏览  • 1回复 待解决
HarmonyOS  har包如何获取自身的版本号 
1517浏览  • 1回复 待解决
数据库主键字段的问题有知道的吗? 
3626浏览  • 1回复 待解决
HarmonyOS  List组件的onScrollStop方法触发问题 
1407浏览  • 1回复 待解决
HarmonyOS 多线程并发相关问题 
1306浏览  • 1回复 待解决
生态规则管控场景中获取自身场景值为空 
2855浏览  • 1回复 待解决
HarmonyOS  数据库如何获取最新更新数据的主键id 
1487浏览  • 1回复 待解决
mysql 自增字段如何重设? 
3586浏览  • 1回复 待解决
使用mysql命令行insert时,如何直接获取到自增id 
4419浏览  • 1回复 待解决





















不说数据库的情况下,就默认你是mysql吧,对于获取自增id的场景,mysql是插入完以后执行select LAST_INSERT_ID()就能获取到最大id(oracle在插入前,这点不同),mybatis做的也就是这样了,至于获取具体的数值,那是数据库对于这个的处理,特意试了下,开启事务以后,A事务先插入,但是不查询LAST_INSERT_ID(),B事务一次操作完,在B事务不管是否提交,A执行select LAST_INSERT_ID都是获取自己插入后的id,并没有串到B的id