mybatis保存后返回自增主键值id

保存细节,获取保存数据的id


每次保存用户后,往往需要数据库返回的自增的主键值,进行下一步工作【给用户增加权限…】

如果没有保存完成后返回id这个功能。那么我们就需要在进行一次查询,这对我们来说是极其痛苦的,不光要多写SQL,多写方法,对我们来说时间是最宝贵的,项目经理给你做模块的时间一般都是不够用的。如果时间都用来写无营养的SQL,那么就避免不了加班了。


下面就来说一下怎么怎么实现

首先我们知道,在MySQL数据库中有这么一个函数 last_insert_id();此方法会查询到最后一次保存的id
- 例如
- insert into tbl_user(name,age) values(“zhangsan”,“25”);
- select last_insert_id();
在这里插入图片描述
我们的MyBatis底层就是实现的这个函数

  1. 在UserDao接口中创建一个保存用户的方法
public interface UserDao(){
	//保存用户的方法,并且返回数据库自增的id
	Integer saveUserReturnId(User user);
}
  1. 在映射文件中编写SQL【不同点】
<!--id写到接口中方法名  parameterType输入参数类型-->
<!--useGeneratedKeys:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中-->
<insert id="saveUserReturnId" keyProperty="id" useGeneratedKeys="true" parameterType="com.yixuexi.entity.User">
	insert into user(name,age) values(#{name},#{age})
</insert>

差别:useGeneratedKeys:设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中

3.注册Mapper 【如果已经注册了,那就不需要在进行注册了】
4.编写测试类
注意:
- 返回的值并不是自增的id属性
- MyBatis会把数据库返回的id值自动封装到User实体类对象中
- 想要得到返回的Id属性,只需要通过调用 user.getId()即可
- 主键必须为自增长列,auto_increment
在这里插入图片描述
这样就能用得到数据库自动增长的id主键了


下一篇更新:查询【通过id查询,like查询【详解】,查询总用户数】

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值