mybatis通过SCOPE_IDENTITY()获取insert语句的自增主键时(sqlserver)
来源:互联网 发布:秦美人浴池进阶数据 编辑:程序博客网 时间:2024/05/16 01:50
获取主键时返回的总是null
经过网上搜索资料,感觉
<selectKey keyProperty="companyUserId" order="AFTER" resultType="java.lang.Integer"> SELECT SCOPE_IDENTITY() </selectKey>是一个bug
而且是存在与mabatis框架下的bug
原因猜想
1、insert语句和select scope_identity()不是同时执行,而是分开执行的
先执行insert语句,之后再发起一个sql执行select scope_identity(),所以获取不了自增主键
2、insert语句和select scope_identity()处于同一个事务中,当跑insert之后跑select scope_identity()语句,由于处于事务中,事务并没提交,所以获取不了主键id
解决方法:
使用jdbc的useGeneratedKeys="true" keyProperty="companyUserId"属性
0 0
- mybatis通过SCOPE_IDENTITY()获取insert语句的自增主键时(sqlserver)
- MyBatis Insert获取自增主键ID
- Mybatis中的insert获取自增主键的值
- Mybatis + SqlServer 数据库操作insert 时获取当前主键值
- Mybatis在执行insert语句返回自增主键
- mybatis的insert语句获取自增id的方法(mySQL)
- mybatis获取自增主键的值
- Mybatis下insert语句后获取自增id
- mybatis insert获取主键
- mybatis获取自增主键
- MyBatis 获取insert操作返回的主键
- 使用mybatis进行insert操作时返回自增的主键id
- oracle结合mybatis 实现自增主键的insert和批量insert功能(未完)
- 使用mybatis的insert语句插入数据的时候,获取插入数据的主键id
- jdbc连接mysql数据库执行insert语句后获取自增长的主键值
- Spring jdbcTemplate 获取insert后主键自增的表的主键id
- Mybatis添加功能时获取mysql自增主键和非自增主键的返回值
- Mybatis + MySql 插入时获取自增的主键
- 打造高大上的Canvas粒子动画
- java内存分配
- ROS源码分析--子话题-catkin
- 攻击链简述(二):威胁情报的作用
- Android设计模式系列
- mybatis通过SCOPE_IDENTITY()获取insert语句的自增主键时(sqlserver)
- 身份证工具类
- ShareSDK使用的一些问题
- 模拟实现智能指针
- 建议107:区分静态类和单例
- 深入理解audio 系统
- 对于主备DNS新的认识
- Toast工具类
- RxJava使用总结