批量插入的使用场景并不少,采用批量插入可以保证数据一致性,一次提交,提高效率。
下面列出三种主流数据库批量insert 写法
表结构 test(id , name),入参是list集合,包含需要保存的bean或者map
Oracle:
<insert id="save" parameterType="java.util.List"> insert into test(id,name) <foreach collection="list" item="item" index="index" separator="union all"> (select #{item.id},#{item.name} from dual) </foreach> </insert>
DB2:
<insert id="save" parameterType="java.util.List"> insert into test(id,name) values <foreach collection="list" item="item" index="index" separator=","> (#{item.id},#{item.name}) </foreach> </insert>
MySql:使用Oracle或者DB2的写法都可以,使用db2的生成的语句更加简洁。