一、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=")" )