第一种写法:
START TRANSACTION;
INSERT INTO 表名 (ID, 列1, 列2, ...)
VALUES (ID,新值1, 新值2, ...)
ON DUPLICATE KEY UPDATE 列1=新值1, 列2=新值2, ...;
COMMIT;
通过将插入操作置于事务中,可以确保并发情况下的数据一致性,避免锁冲突的问题。
第二种写法:
<insert id="insertOrUpdate" paramerType="Info">
insert into info( id,age,name,gender)
VALUES( #{id}, #{age}, #{name}, #{gender})
ON DUPLICATE KEY UPDATE
age= VALUES(age),
name= VALUES(name),
gender= VALUES(gender)
</insert>
可以通过foreach批量操作数据。