首先讲一下, 插入一条记录返回主键的 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 插入一条或批量插入 返回带有自增长主键记录的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/wdhwzm/archive/2017/12/14/8036701.html