mybatis新增主键的返回值

Posted codingcheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis新增主键的返回值相关的知识,希望对你有一定的参考价值。

在主键自增的数据库中返回新增数据的主键方式:根据mybatis文档

useGeneratedKeys (仅对 insert 和 update 有用)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 mysql 和 SQL Server 这样的关系数据库管理系统的自动递增字段),默认值:false。
keyProperty (仅对 insert 和 update 有用)唯一标记一个属性,MyBatis 会通过 getGeneratedKeys 的返回值或者通过 insert 语句的 selectKey 子元素设置它的键值,默认值:未设置(unset)。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表。

使用useGeneratedKeys和keyProperty就可以了,但是实际使用中,例:

Mission mission = new Mission();
System.out.println("返回值"+missionService.createMission(mission));
<insert id="insertSelective" parameterType="com.antscity.any_call.base.model.common.Mission" useGeneratedKeys="true"
keyProperty="id" keyColumn="id">
insert into mission(***)values(***)
<insert/>
结果输出返回值1
此处是一个小坑,mybatis会自动将值赋值给传入的pojo
System.out.println("返回值mission"+mission.getId());
结果输出:返回值mission26523

所以再取一遍插入数据的id值就可以了


以上是关于mybatis新增主键的返回值的主要内容,如果未能解决你的问题,请参考以下文章

mybatis保存的时候返回值为数据库中主键的id值

mybatis中的insert会返回主键吗

Mybatis返回自增主键的xml方式

mybatis批量插入,怎么返回生成的自增主键

记一次mybatis返回自增主键的低级错误!

mybatis批量插入,怎么返回生成的自增主键