mybatis 新增返回id的实现

 更新时间:2024年09月23日 10:40:56   作者:YLDominer  
Mybatis插入数据时,可以通过两种方式返回生成的ID,两种方式都需要在实体类中提供userId的getter和setter方法,本文就详细的介绍一下这两种方法,感兴趣的可以了解一下

前言

插入一条数据并返回ID的场景很常见,mybatis的要麻烦一点,mybatis-plus可能之前api插入再getId()就行了,这里说一下Mybatis的两个方式。

一、第一种方式

在实体类的映射文件 “*Mapper.xml” 这样写:

<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.xxx.mybatis.User">
    insert into user(userName,password,comment)
    values(#{userName},#{password},#{comment})
</insert>

小Tips:

  • useGeneratedKeys=“true” 表示给主键设置自增长
  • keyProperty=“userId” 表示将自增长后的Id赋值给实体类中的userId字段。
  • parameterType=“com.xxx.mybatis.User” 这个属性指向传递的参数实体类
  • id=“insertAndGetId” 这个不是固定叫这个的,你可以根据自己的来

这里提醒下,insert标签中没有resultType属性,不要乱加。

实体类中uerId 要有getter() and setter(); 方法
我在MySQL数据库中建表时候已经设置了字段自增长,

二、第二种方式

1.引入库

代码如下(示例):

<!-- 插入一个商品 -->
<insert id="insertProduct" parameterType="domain.model.ProductBean" >
    <selectKey resultType="java.lang.Long" order="AFTER" keyProperty="productId">
        SELECT LAST_INSERT_ID()
    </selectKey>
        INSERT INTO t_product(productName,productDesrcible,merchantId)values(#{productName},#{productDesrcible},#{merchantId});
</insert>

小Tips:

< insert >标签中没有resultType属性,但是< selectKey >标签是有的。
order=“AFTER” 表示先执行插入语句,之后再执行查询语句。

可被设置为 BEFORE 或 AFTER。

如果设置为 BEFORE,那么它会首先选择主键,设置 keyProperty 然后执行插入语句。

如果设置为 AFTER,那么先执行插入语句,然后是 selectKey 元素-这和如 Oracle 数据库相似,可以在插入语句中嵌入序列调用
keyProperty=“userId” 表示将自增长后的Id赋值给实体类中的userId字段。

SELECT LAST_INSERT_ID() 表示MySQL语法中查询出刚刚插入的记录自增长Id.

实体类中uerId 要有getter() and setter(); 方法

到此这篇关于mybatis 新增返回id的实现的文章就介绍到这了,更多相关mybatis 新增返回id内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mybatis报Query was Empty异常的问题

    mybatis报Query was Empty异常的问题

    这篇文章主要介绍了mybatis报Query was Empty异常的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Spring AI聊天功能开发步骤

    Spring AI聊天功能开发步骤

    本文给大家介绍Spring AI聊天功能开发步骤,首先引入依赖,继承父版本的springboot依赖,最好是比较新的依赖,结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • 解决RestTemplate 请求接收自定义400+ 或500+错误

    解决RestTemplate 请求接收自定义400+ 或500+错误

    这篇文章主要介绍了解决RestTemplate 请求接收自定义400+ 或500+错误,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java高级用法中的JNA类型映射注意细节及使用问题

    Java高级用法中的JNA类型映射注意细节及使用问题

    本文介绍了在使用JNA方法映射中应该注意的一些细节和具体的使用问题,对java  JNA类型映射注意细节感兴趣的朋友一起看看吧
    2022-04-04
  • IDEA未配置SQL方言:无法使用SQL提示解决方法

    IDEA未配置SQL方言:无法使用SQL提示解决方法

    在使用IDEA进行SQL开发时,如果未配置SQL方言可能会导致一些问题,如无法正确识别数据库中的关键字、数据类型等,这篇文章主要给大家介绍了关于IDEA未配置SQL方言,无法使用SQL提示解决方法的相关资料,需要的朋友可以参考下
    2024-07-07
  • Java里遍历Map集合的多种方法总结

    Java里遍历Map集合的多种方法总结

    Java中的Map是一种键值对映射的数据结构,它提供了一些常用的方法用于获取、添加、删除和修改元素,在Java中,有多种方式可以遍历Map,本文将介绍其中的四种常用方式,并比较它们之间的优缺点,需要的朋友可以参考下
    2024-07-07
  • java通过HttpServletRequest获取post请求中的body内容的方法

    java通过HttpServletRequest获取post请求中的body内容的方法

    本篇文章主要介绍了java通过HttpServletRequest获取post请求中的body内容的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Dubbo3的Spring适配原理与初始化流程源码解析

    Dubbo3的Spring适配原理与初始化流程源码解析

    这篇文章主要为大家介绍了Dubbo3的Spring适配原理与初始化流程源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Java下载文件的4种方式总结

    Java下载文件的4种方式总结

    这篇文章主要给大家总结介绍了关于Java下载文件的4种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java中的布隆过滤器原理实现和应用

    Java中的布隆过滤器原理实现和应用

    Java中的布隆过滤器是一种基于哈希函数的数据结构,能够高效地判断元素是否存在于一个集合中。它广泛应用于缓存、网络协议、数据查询等领域,在提高程序性能和减少资源消耗方面具有显著优势
    2023-04-04

最新评论