当参数与表中UNIQUE索引重复时执行update,否则执行insert,适用于批量处理
MySQL语句:
INSERT INTO table_name
(field1_name,field2_name,field3_name)
VALUES
(value1,value2,value3),
(valuea,valueb,valuec)
ON DUPLICATE KEY
UPDATE
field1_name=VALUES(field1_name),
field2_name=field2_name+VALUES(field2_name)
对应mybatis语句:
<insert id="insertOrUpdate" parameterType="java.util.List">
INSERT INTO table_name(
field1_name,
field2_name,
field3_name
)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
( #{item.field1},
#{item.field2},
#{item.field3})
</foreach>
ON DUPLICATE KEY UPDATE
field1_name=VALUES(field1_name),
field2_name=field2_name+VALUES(field2_name)
</insert>