欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-10 14:20:46
首先讲一下, 插入一条记录返回主键的 mybatis 版本要求低点,而批量插入返回带主键的 需要升级到3.3.1版本,3.3.0之前的都不行。

首先讲一下, 插入一条记录返回主键的 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 插入一条或批量插入 返回带有自增长主键记录的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。