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

2025-05-29 0 77

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

?

1

2

3

4

5
<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>3.3.1</version>

</dependency>

1.MySQL

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17
<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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

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

原文链接:http://www.cnblogs.com/wdhwzm/archive/2017/12/14/8036701.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Mybatis 插入一条或批量插入 返回带有自增长主键记录的实例 https://www.kuaiidc.com/113041.html

相关文章

发表评论
暂无评论