此文章只记录mybatis在Oracle数据库中的批量插入用法:
这里主要的关注点在于foreach里面,将需要插入的字段,通过from dual来生成虚表,然后以union all来连接即可,项目中亲测可用;
<insert id="insertList" parameterType="java.util.List">
INSERT INTO tb_message_list(
id,
userid,
title,
sent_time,
url,
flag,
create_by,
create_date,
update_by,
update_date,
remarks,
del_flag,
type
)
<foreach collection ="list" item="tbMessageList" separator ="UNION ALL">
(
SELECT
#{tbMessageList.id},
#{tbMessageList.userid},
#{tbMessageList.title},
#{tbMessageList.sentTime},
#{tbMessageList.url},
#{tbMessageList.flag},
#{tbMessageList.createBy.id},
#{tbMessageList.createDate},
#{tbMessageList.updateBy.id},
#{tbMessageList.updateDate},
#{tbMessageList.remarks},
#{tbMessageList.delFlag},
#{tbMessageList.type}
FROM DUAL
)
</foreach >
</insert>