mybatis 批量插入怎么用on duplicate key update
时间: 2023-11-29 09:07:09 浏览: 249
在Mybatis中,批量插入时可以使用foreach标签来实现,而要使用on duplicate key update,则需要在insert语句中添加该语句。具体实现步骤如下:
1. 在mapper.xml文件中编写insert语句,添加on duplicate key update语句,例如:
```
<insert id="batchInsert" parameterType="java.util.List">
insert into table_name (id, name, age) values
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.name}, #{item.age})
</foreach>
on duplicate key update name=values(name), age=values(age)
</insert>
```
2. 在Java代码中调用该方法时,传入一个List参数,其中包含多个对象,每个对象对应一条记录,例如:
```
List<User> userList = new ArrayList<>();
User user1 = new User(1, "Tom", 20);
User user2 = new User(2, "Jerry", 22);
userList.add(user1);
userList.add(user2);
userMapper.batchInsert(userList);
```
这样就可以实现批量插入并且在主键冲突时更新记录的功能了。
阅读全文