首先讲一下, 插入一条记录返回主键的 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