Mybatis返回插入的主键问题解决方案
MyBatis添加记录后获取主键ID,这是一个很常见的需求。这个需求有分为两种情况:(1)添加单条记录时获取主键值;(2)获取批量添加记录时各记录的主键值。
备注:MyBatis从3.3.1版本开始支持批量添加记录并返回各记录主键字段值。
1、添加单一记录时返回主键ID(方法一)
此种方法主要思路是:使用
2、添加单一记录时返回主键ID(方法二)
在上面方法一中,如何获取自增的id呢,估计很多人还有点疑惑,其实原理很简单:当插入数据之后,mybatis再次查询mysql数据库,获得了注解id,然后填充到person对象的id属性的。
业务中,会遇到这样的问题,就是感觉返回的主键,插入作为其他表的外键。
那么问题来了,如何去实现,其实方法比较简单,这里就是重点记录下,会出现的误区。
用自动生成sql工具的话,加上下面这句话
生成的sql文件就会带useGeneratedKeys="true"keyProperty="travelId"属性。
首先,sql文件里面的需要加上两个属性。
- useGeneratedKeys="true"表示给主键设置自增长
- keyProperty="userId"表示将自增长后的Id赋值给实体类中的userId字段。
- parameterType="com.chenzhou.mybatis.User"这个属性指向传递的参数实体类
然后接收的地方:
注意了,这里主键Id是不会在,返回值里面的。
而是在参数里面取。
intinsertSelective(HTRAVELrecord);
//这里才是本次插入的主键Id
record.getId();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。