mybatis新增主键的返回值

本文介绍在使用MyBatis操作具有主键自增特性的数据库时,如何通过配置useGeneratedKeys和keyProperty来获取刚插入数据的自增主键值。此方法适用于如MySQL和SQLServer等数据库管理系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在主键自增的数据库中返回新增数据的主键方式:根据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值就可以了


转载于:https://www.cnblogs.com/codingcheng/p/10762782.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值