一、批量插入
注意,separator="," 不是冒号 “:”,此时 jdbc.url无需加入连接参数 &allowMultiQueries=true
<insert id="insertBachMsSupPrice" parameterType="java.util.List">
INSERT INTO table_name
(a,b,c,d,c,f,g)
VALUES
<foreach collection="list" item="item" index="index" separator="," >
(#{item.a,jdbcType=VARCHAR}, #{item.b,jdbcType=VARCHAR}, #{item.c,jdbcType=VARCHAR}, #{item.e,jdbcType=VARCHAR}, #{item.f,jdbcType=NUMERIC}, #{item.g,jdbcType=NUMERIC})
</foreach>
</insert>
二、批量更新
jdbc.url必须加入连接参数 &allowMultiQueries=true(允许批量操作),且separator=";" 是分号,不是冒号
,如果不想在链接数据库的url上加上参数的话,可以换种实现方式,先删除再增加。
<!--批量更新-->
<update id="updateBachMsSupPrice" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" separator=";" >
UPDATE table_name1 a ,table_name2 b, table_name3 e
<set>
a.字段=#{item.属性},
a.字段=#{item.字段属性}
</set>
WHERE a.mms_sup_unique=#{item.mmsSupUnique}
AND a.字段=0
AND a.字段 = b.id
AND a.字段 =e.id
</foreach>
</update>
三、批量删除
这个也无需在url上添加参数加入参数
<delete id="deleteBachMsSupPrice" parameterType="java.util.List">
DELETE FROM table_name WHERE 字段 in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.字段属性}
</foreach>
</delete>