首页 > 数据库技术 > 详细

数据库批量 之 Oracle

时间:2019-04-24 17:48:44      阅读:149      评论:0      收藏:0      [点我收藏+]

mybatis批量插入oracle时需要显式指定为 useGeneratedKeys="false" 不然报错~~~

 

正确的mybatis的mapper的sql配置如下:

 1 <insert id="addList" parameterType="java.util.List" useGeneratedKeys="false">
 2         INSERT ALL
 3         <foreach item="item" index="index" collection="list">
 4         INTO T_APPLAUD
 5         (
 6             ID,
 7             USER_ID,
 8             BUSINESS_TYPE,
 9             PRODUCT_ID,
10             CREATE_TIME
11         ) VALUES
12         (
13             #{item.id, jdbcType=NUMERIC},
14             #{item.userId, jdbcType=VARCHAR},
15             #{item.businessType, jdbcType=VARCHAR},
16             #{item.productId, jdbcType=VARCHAR},
17             #{item.createdTime, jdbcType=NUMERIC} 
18         )
19         </foreach>
20         SELECT 1 FROM DUAL
21     </insert>

 

另外一种方法是 insert into table(...) (select ... from dual) union all (select ... from dual)

 1     <insert id="addList" parameterType="java.util.List" useGeneratedKeys="false">
 2         INSERT INTO T_APPLAUD
 3         (
 4             ID,
 5             USER_ID,
 6             BUSINESS_TYPE,
 7             PRODUCT_ID,
 8             CREATE_TIME
 9         )
10         <foreach item="item" index="index" collection="list" separator="union all">
11         (
12             SELECT 
13                 #{item.id},
14                 #{item.userId},
15                 #{item.businessType},
16                 #{item.productId},
17                 #{item.createdTime} 
18             FROM DUAL
19         )
20         </foreach>
21     </insert>

数据库批量 之 Oracle

原文:https://www.cnblogs.com/anyiz/p/10763744.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!