XML文件中Oracle的批量插入
这种可以支持生成ID的写法,注意没有values
<insert id="batchInsertEntityList" parameterType="cn.xx.xxx.model.entity">
insert into TABLE_DELIVERABLE_SUBMIT
(ID,
code,
name,
STATUS
)
select seq_test.NEXTVAL,a.* from(
<foreach collection="collection" item="item" separator="union all">
select
#{ppapCode,jdbcType=VARCHAR},
#{did,jdbcType=BIGINT},
'4'
from dual
</foreach>
) a
</insert>
Oracle数据库结合Mybatis,实操运行通过xml文件中
<insert id="batchInsertEntityByList" parameterType="java.util.List" useGeneratedKeys="false">
<!--<selectKey keyProperty="taskId" order="BEFORE" resultType="Long">
select seq_sys_atlas_task.nextval as taskId from DUAL
</selectKey>-->
insert into test_table
(
id,
code,
name,
remark,
desc,
add_by,
add_date,
edit_by,
edit_date,
del_flag,
ogg_add_date,
ogg_edit_date
)
select seq_test_table.nextval,temp.* from(
<foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT
#{item.code,jdbcType=VARCHAR},
#{item.name,jdbcType=VARCHAR},
#{item.remark,jdbcType=VARCHAR},
#{item.desc,jdbcType=VARCHAR},
#{item.addBy,jdbcType=DECIMAL},
#{item.addDate,jdbcType=DATE},
#{item.editBy,jdbcType=DECIMAL},
#{item.editDate,jdbcType=DATE},
#{item.delFlag,jdbcType=DECIMAL},
#{item.oggAddDate,jdbcType=DATE},
#{item.oggEditDate,jdbcType=DATE}
FROM
dual
</foreach>
) temp
</insert>