在使用Oracle数据库,批量插入语句与Mysql不同,Mysql的批量插入语句在Oracle中不适应,这里主要记录一下Oracle的批量插入语句应该怎么写。
接口传参也需要是list类型。
int insertGC51(@Param("data") List<GC51DTO> data);
XML代码如下。
<insert id="insertGC51">
insert into gc51(
AGC156,
AAC001,
AGB020,
AGE655,
AAE100
)
<foreach collection="data" separator="UNION ALL" item="item">
select
#{item.agc156,jdbcType=VARCHAR} agc156,
#{item.aac001,jdbcType=VARCHAR} aac001,
#{item.agb020,jdbcType=VARCHAR} agb020,
#{item.age655,jdbcType=VARCHAR} age655,
#{item.aae100,jdbcType=VARCHAR} aae100
from dual
</foreach>
</insert>
这样的sql类似表迁移,Oracle还有其他的批量插入,但需要额外的配置,这个不需要,比较简单。