mybatis批量更新foreach
时间: 2023-09-28 11:07:33 浏览: 70
MyBatis提供了`foreach`标签,可以方便地进行批量操作,包括批量更新。下面是使用`foreach`进行批量更新的示例:
1. 首先,在XML中定义一个`update`语句,例如:
```xml
<update id="batchUpdate" parameterType="java.util.List">
update user set name=#{name} where id=#{id}
</update>
```
2. 在Java代码中,创建一个包含多个参数的`List`,例如:
```java
List<User> userList = new ArrayList<>();
User user1 = new User(1, "张三");
User user2 = new User(2, "李四");
userList.add(user1);
userList.add(user2);
```
3. 使用`foreach`标签进行批量更新,例如:
```xml
<update id="batchUpdate" parameterType="java.util.List">
update user
<set>
name =
<foreach collection="list" item="user" separator="," >
#{user.name}
</foreach>
</set>
where id in
<foreach collection="list" item="user" open="(" close=")" separator=",">
#{user.id}
</foreach>
</update>
```
在上面的示例中,`foreach`标签用于遍历`userList`,将`id`和`name`分别批量更新到数据库中。`open`和`close`属性定义了ID列表的开头和结尾,`separator`属性定义ID之间的分隔符。在`set`标签中,使用`foreach`标签将`name`分别更新到数据库中。
注意,要在`update`语句的`parameterType`属性中指定参数类型为`java.util.List`,并将`List`作为参数传递给`batchUpdate`方法。
阅读全文