转:https://blog.csdn.net/gufachongyang02/article/details/38922473
1.使用"直接路径插入"(下面sql语句中的"/*+append_values */"),并且使用关键字"union all":
<insert id="addUidCodeBatch" parameterType="java.util.List">
insert into /*+append_values */
T_UID_CODE(C_UID_CODE,
C_SERAIL_LEN,
C_BATCH_CODE,
C_TYPE,
C_CREATE_TIME,
C_SUPER_CODE,
c_security_code,
C_SERIAL_CODE
)
<foreach collection="list" item="item" index="index" separator="union all" >
select #{item.uidCode},
#{item.kCode},
#{item.batchCode},
#{item.type},
sysdate,
#{item.superCode},
#{item.securityCode},
#{item.serialCode}
from dual
</foreach>
</insert>
注意:IN 子句中的LIST个数最长为1000,超过该数目将报错,和这个list 里面也不能超过1000元素。