Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例
程序员文章站
2024-02-20 21:28: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 插入一条或批量插入 返回带有自增长主键记录的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。