Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例

 更新时间:2017年12月14日 13:59:20   作者:紫薇帝星的故事  
下面小编就为大家分享一篇Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

首先讲一下, 插入一条记录返回主键的 Mybatis 版本要求低点,而批量插入返回带主键的 需要升级到3.3.1版本,3.3.0之前的都不行。

<dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis-spring</artifactId>
 <version>3.3.1</version>
</dependency>

1.MySQL

<insert id="insertByBatch" useGeneratedKeys="true" keyProperty="id" parameterType="java.util.List">
 insert into test (sblsh, xh, jsjg,
  is_success, is_display, gmt_create,
  gmt_modify, create_user)
 values
  <foreach collection="list" item="item" index="index" separator=",">
   (
   #{item.sblsh,jdbcType=BIGINT},
   #{item.xh,jdbcType=CHAR},
   #{item.jsjg,jdbcType=BIGINT},
   #{item.isSuccess,jdbcType=TINYINT},
   #{item.isDisplay,jdbcType=TINYINT},
   SYSDATE(),
   SYSDATE(),
   #{item.createUser,jdbcType=VARCHAR})
  </foreach>
 </insert>

单条和多条 使用都是一样的, 加入useGeneratedKeys="true" keyProperty="主键字段"

2.Oracle

<insert id="insertBatch"> 
 <selectKey keyProperty="id" resultType="Long" order="BEFORE"> 
  select test.nextval as id from dual 
 </selectKey> 
 insert into test 
 (id,value,gmt_create,gmt_modified) 
 select test.nextval, A.* FROM ( 
 <foreach collection="list" item="item" index="index" 
  separator="union all"> 
  select 
  #{item.value,jdbcType=VARCHAR}, 
  #{item.gmtCreate,jdbcType=DATE}, 
  #{item.gmtModified,jdbcType=DATE} 
  from 
  dual 
 </foreach> 
 ) A 
 </insert>

以上这篇Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • spring中的ObjectPostProcessor详解

    spring中的ObjectPostProcessor详解

    这篇文章主要介绍了spring中的ObjectPostProcessor详解,Spring Security 的 Java 配置不会公开其配置的每个对象的每个属性,这简化了大多数用户的配置,毕竟,如果每个属性都公开,用户可以使用标准 bean 配置,需要的朋友可以参考下
    2024-01-01
  • Java查询Elasticsearch数据根据指定id检索(in查询)、sql权限过滤、多字段匹配检索及数据排序

    Java查询Elasticsearch数据根据指定id检索(in查询)、sql权限过滤、多字段匹配检索及数据排序

    在Java开发中Elasticsearch(简称ES)是一个非常流行的搜索引擎,它提供了强大的全文搜索和分析功能,这篇文章主要给大家介绍了关于Java查询Elasticsearch数据根据指定id检索(in查询)、sql权限过滤、多字段匹配检索及数据排序的相关资料,需要的朋友可以参考下
    2024-05-05
  • springboot+Vue实现分页的示例代码

    springboot+Vue实现分页的示例代码

    本文主要介绍了springboot+Vue实现分页的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • Spring中的@Conditional注解使用和原理详解

    Spring中的@Conditional注解使用和原理详解

    这篇文章主要介绍了Spring中的@Conditional注解使用和原理详解,@Conditional在Spring4.0中被引入,用于开发"If-Then-Else"类型的bean注册条件检查,在@Conditional之前,也有一个注解@Porfile起到类似的作用,需要的朋友可以参考下
    2024-01-01
  • Java ConcurrentHashMap实现线程安全的代码示例

    Java ConcurrentHashMap实现线程安全的代码示例

    众所周知ConcurrentHashMap是HashMap的多线程版本,HashMap 在并发操作时会有各种问题,而这些问题,只要使用ConcurrentHashMap就可以完美解决了,本文将给详细介绍ConcurrentHashMap是如何保证线程安全的
    2023-05-05
  • Java利用TCP协议实现客户端与服务器通信(附通信源码)

    Java利用TCP协议实现客户端与服务器通信(附通信源码)

    这篇文章主要介绍了Java利用TCP协议实现客户端与服务器通信(附通信源码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • java设计模式系列之装饰者模式

    java设计模式系列之装饰者模式

    这篇文章主要为大家详细介绍了java设计模式之装饰者模式,装饰者模式是一种结构式模式,感兴趣的朋友可以参考一下
    2016-02-02
  • Java编程实现向文本文件中读取数据之Scanner用法示例

    Java编程实现向文本文件中读取数据之Scanner用法示例

    这篇文章主要介绍了Java编程实现向文本文件中读取数据之Scanner用法,结合实例形式分析了java使用Scanner类读取文本文件相关操作技巧与注意事项,需要的朋友可以参考下
    2018-03-03
  • mybatis参数类型不匹配错误argument type mismatch的处理方案

    mybatis参数类型不匹配错误argument type mismatch的处理方案

    这篇文章主要介绍了mybatis参数类型不匹配错误argument type mismatch的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • springboot中使用Hibernate-Validation校验参数详解

    springboot中使用Hibernate-Validation校验参数详解

    这篇文章主要为大家介绍了springboot中使用Hibernate-Validation校验参数详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07

最新评论