前言
提示:在orcale和mybatis执行批量插入是不一样的。
方式1
oracle批量插入使用 insert all into table(…) values(…) into table(…) values(…) select 1 from dual;
<insert id="insertlistbatch" parametertype="java.util.list" usegeneratedkeys="false">
insert all
<foreach item="item" index="index" collection="list">
into student
(
id,
name,
age,
sex,
create_time
) values
(
#{item.id, jdbctype=numeric},
#{item.name, jdbctype=varchar},
#{item.age, jdbctype=varchar},
#{item.sex, jdbctype=varchar},
#{item.createdtime, jdbctype=numeric}
)
</foreach>
select 1 from dual
</insert>
方式2
insert into table(…) (select … from dual) union all (select … from dual)
<insert id="insertlistbatch" parametertype="java.util.list" usegeneratedkeys="false">
insert into t_applaud
(
id,
name,
age,
sex,
create_time
)
<foreach item="item" index="index" collection="list" separator="union all">
(
select
#{item.id},
#{item.name},
#{item.age},
#{item.sex},
#{item.createdtime}
from dual
)
</foreach>
</insert>方式3
mysq如下:
<insert id="insertlistbatch" >
insert into student ( id,name,age,sex,createdtime ) values
<foreach collection="list" item="item" index="index" separator=",">
(null,#{item.name},#{item.age},#{item.sex},#{item.createdtime}
</foreach>
</insert>总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论