Mybatis新增返回主键ID

在做项目的过程中有时候难免会运用到新增一条数据并获取到新增的这条数据的主键ID,这样的一个功能,新增一条订单数据,并返回新增订单的ID。这样做的前提是数据的ID必须为自增。
我是用ssm框架做的项目,首先在mapper包里对应接口定义一个返回主键的方法
在这里插入图片描述

随后在对应的mapping的实现的xml文件里的新增返回主键的语句添加一个useGeneratedKeys = true和一个keyProperty="返回的主键ID"的属性 ,
在这里插入图片描述

useGeneratedKeys:
(仅对insert有用)这会告诉MyBatis使用JDBC的getGeneratedKeys方法来取出由数据(比如:像MySQL和SQL Server这样的数据库管理系统的自动递增字段)内部生成的主键。默认值:false。
keyProperty:
(仅对insert有用)标记一个属性,MyBatis会通过getGeneratedKeys或者通过insert语句的selectKey子元素设置它的值。默认:不设置。

如下图所示:

   注意的是这里的keyProperty里的id是po实体类所对应的ID,并不是数据库表所对应的字段。然后再去Service层对应的接口增加这样一个方法

在这里插入图片描述
再去对应的实现类去实现,然后再在对应的实现类注入 ,并实现这个方法,代码如下:

在这里插入图片描述

接下来就是在controller层去调用,如下图:
在这里插入图片描述

需要注意的是这里返回的int类型的数据仍然是数据修改的条数而不是新增返回的ID,而要获取对应的ID,还是得执行新增以后,从对应的实体类中去获取新增返回的ID

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值