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

   日期:2020-09-16     浏览:101    评论:0    
核心提示:保存细节,获取保存数据的id每次保存用户后,往往需要数据库返回的自增的主键值,进行下一步工作【给用户增加权限…】如果没有保存完成后返回id这个功能。那么我们就需要在进行一次查询,这对我们来说是极其痛苦的,不光要多写SQL,多写方法,对我们来说时间是最宝贵的,项目经理给你做模块的时间一般都是不够用的。如果时间都用来写无营养的SQL,那么就避免不了加班了。下面就来说一下怎么怎么实现首先我们知道,在MySQL数据库中有这么一个函数 last_insert_id();此方法会查询到最后一次保存的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查询【详解】,查询总用户数】

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服