MyBatis插入数据返回主键的介绍

 更新时间:2019年01月16日 11:59:38   作者:Haozz_1994  
今天小编就为大家分享一篇关于MyBatis插入数据返回主键的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

Service层:

public int addUser(UserDomian user){
  int i = userMapper.insert(user);
}

xml:

<insert id="insert" parameterType="....UserDomain">
  insert into t_user(user_name,password)
  values
  (#{userName},#{password})
</insert>

这样userMapper的insert方法成功插入之后返回值为影响行数,也就是1。而且插入之后userDomain实体类的userId为null。

我们都知道在MyBatis中,xml的insert语句中将useGeneratedKeys指定为true,那么返回之后就会得到新增的主键值,具体写法如下:

<insert id="insert" parameterType="....UserDomain" useGeneratedKeys="true" keyProperty="userId">
  insert into t_user(user_name,password)values(#{userName},#{password})
</insert>

前提条件是对应的mysql表中id必须是自增的,并且对应的UserDomain实体类中有get、set方法,而且只适用于与mySql数据库,Oracle数据库不支持。

但是这样设置之后,在service层打断点,插入成功之后UserDomain确实和之前不一样,他的userId不再是null了,而是具体的主键id值,但是usetMapper的insert方法的返回值依然是1,也就是插入的影响行数。

也就是说,这样设置,mapper接口返回值依然是成功插入的记录数,但不同的是主键值已经赋值到领域模型实体的id中了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Idea2020 无法share项目到svn的解决方法

    Idea2020 无法share项目到svn的解决方法

    这篇文章主要介绍了Idea2020 无法share项目到svn的解决方法,需要的朋友可以参考下
    2020-09-09
  • Java经典面试题最全汇总208道(三)

    Java经典面试题最全汇总208道(三)

    这篇文章主要介绍了Java经典面试题最全汇总208道(三),本文章内容详细,该模块分为了六个部分,本次为第三部分,需要的朋友可以参考下
    2023-01-01
  • IDEA插件之快速删除Java代码中的注释

    IDEA插件之快速删除Java代码中的注释

    这篇文章主要介绍了IDEA插件之快速删除Java代码中的注释,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 使用Java实现大小写转换实例代码

    使用Java实现大小写转换实例代码

    最近在开发项目中遇到一个比较好用的方法,那就是对字符串中的字母大小进行转换,所以下面这篇文章主要给大家介绍了关于如何使用Java实现大小写转换的相关资料,需要的朋友可以参考下
    2022-06-06
  • Java中double保留两位小数的多种方法

    Java中double保留两位小数的多种方法

    这篇文章主要给大家介绍了关于Java中double保留两位小数的多种方法,对于double数据类型进行计算发生的精度丢失的情况,可以按照自己的需求选择任意方式,需要的朋友可以参考下
    2023-07-07
  • Spring Boot获取resources目录下的文件三种方式详解

    Spring Boot获取resources目录下的文件三种方式详解

    在Spring Boot项目中,经常需要获取resources目录下的文件,这些文件可以包括配置文件、模板文件、静态资源等,这篇文章主要介绍了Spring Boot获取resources目录下的文件的三种方式,需要的朋友可以参考下
    2023-06-06
  • Springboot启动执行特定代码的方式汇总

    Springboot启动执行特定代码的方式汇总

    这篇文章主要介绍了Springboot启动执行特定代码的几种方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Java SpringBoot容器注入对象详解

    Java SpringBoot容器注入对象详解

    本文通过实例代码给大家详解了springboot获取ioc容器中注入的bean问题,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-09-09
  • 一文告诉你为什么要重写hashCode()方法和equals()方法

    一文告诉你为什么要重写hashCode()方法和equals()方法

    本篇文章带大家了解一下为什么重写hashCode()方法和equals()方法,文中有非常详细的说明以及代码示例,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • Java中的split使用方法详解

    Java中的split使用方法详解

    这篇文章主要介绍了Java中的split使用方法详解,Java 中 String 的 split 方法可以将字符串根据指定的间隔进行切割,经过切割后得到的返回值是一个字符串数组,需要的朋友可以参考下
    2023-10-10

最新评论