1.问题:
开发过程中,经常遇到这样的情况,多表关联操作,第一个表的数据插入后,需要返回id 供后面的操作使用,后续的表要使用该字段进行数据的关联。默认状态下,mybatis在插入数据后返回的是插入成功的条数 1 , 如果我们想要得到这条新增数据的ID,咋办?
2.插入数据返回自增主键ID方法(一)
在映射器中配置获取记录主键值
- xml映射:
在xml中定义useGeneratedKeys为true,返回主键id的值,keyProperty和keyColumn分别代表数据库记录主键字段和java对象成员属性名
insert into user (name,pwd,phone) values (#{name},#{pwd},#{phone})
- 接口映射器
在接口映射器中通过注解@Options分别设置参数useGeneratedKeys,keyProperty,keyColumn值
// 返回主键字段id值@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")@Insert("insert into user (name,pwd,phone) values (#{name},#{pwd},#{phone})")void insert(Student stu);
<