一、oracle批量插入
<insert id="save" parameterType="java.util.List"> insert into student
(name,age) <foreach collection="list" item="item" index="index" separator="union all">
(
select
#{item.name,jdbcType=VARCHAR}, #{item.age,jdbcType=INTEGER}
from dual
)
</foreach>
</insert>
二、mysql批量插入
<insert id="save" parameterType="java.util.List"> insert into student
(name,age)
values
<foreach collection="list" item="item" index="index" separator="," close=";">
#{item.name,jdbcType=VARCHAR}, #{item.age,jdbcType=INTEGER}
</foreach>
</insert>
总结:
1、oracle中没有values关键字
2、oracle的foreach中的separator值是UNION ALL ,mysql的foreach中的separator值是逗号
3、oracle的foreach中的语句需要(select …from dual)包裹。(括号可以直接加在这里,也可以加在foreach中,open=”(” close=”)” )