1.先写在orcale中的批量插入
xml:
<insert id="insertByList" parameterType="java.util.List">
insert into User (ID, NAME, AGE,BIRTHDAY)
<foreach open="(" close=")"collection="list"item="item"index="index"separator="union">
select
#{item.id,jdbcType=VARCHAR},
#{item.name,jdbcType=VARCHAR},
#{item.age,jdbcType=VARCHAR},<pre name="code" class="html">#{item.birthday,jdbcType=VARCHAR}<pre name="code" class="html"> from dual
</foreach>
</insert>
可以在orcale客户端试一下:
insert into User
(id, name, age,birthday)
(
select '6', 'ddd', '123','1323-2-3'from dual union
select '7', 'ddd', '123','1323-2-3' from dual union
select '8', 'ddd', '123','1323-2-3' from dual
)
mysql的xml:
<insert id="insertByList" parameterType="java.util.List">
insert into User
(ID, NAME, AGE,BIRTHDAY)
values
<foreach collection="list" item="item" index="index" separator=",">
('${item.id}','${item.name}','${item.age}','${item.birthday}')
</foreach>
</insert>
oracle自增序列,批量插入
<insert id="insertSummaryByList" parameterType="list">
<selectKey resultType="int" order="BEFORE" keyProperty="fid">
SELECT vouchersummary_sequence.Nextval as fid from DUAL
</selectKey>
insert into voucherSummary ( fvoucherCode,foriginCode)
<foreach open="(" close=")" collection="list" item="item"
index="index" separator="union">
select
#{item.fvoucherCode,jdbcType=VARCHAR},
#{item.foriginCode,jdbcType=VARCHAR}
from dual
</foreach>
</insert>