mybatis批量修改数据】
时间: 2023-08-11 13:32:35 浏览: 92
要批量修改数据,可以使用MyBatis的`<foreach>`标签和`update`语句。
首先,在Mapper.xml文件中编写批量修改语句,例如:
```xml
<update id="updateBatch" parameterType="java.util.List">
update user set name=#{name}, age=#{age} where id=#{id}
</update>
```
其中,`parameterType="java.util.List"`表示传入的参数类型为List,每个元素都是要修改的对象。
然后,在Java代码中调用这个批量修改语句,例如:
```java
List<User> userList = new ArrayList<>();
// 添加要修改的用户对象到列表中
int result = sqlSession.update("updateBatch", userList);
```
其中,`sqlSession.update("updateBatch", userList)`表示执行批量修改操作,参数`updateBatch`为Mapper.xml中定义的id,`userList`为要修改的对象列表。
需要注意的是,在`<foreach>`标签中,可以使用`collection`属性指定要遍历的集合,`item`属性指定集合中的每个元素,`open`属性表示循环开始前的字符串,`close`属性表示循环结束后的字符串,`separator`属性表示每个元素之间的分隔符。例如:
```xml
<update id="updateBatch" parameterType="java.util.List">
update user
<set>
<foreach collection="list" item="user" separator=",">
name=#{user.name},
age=#{user.age}
</foreach>
</set>
where id=#{id}
</update>
```
其中,`collection="list"`表示遍历的集合为传入的List参数,`item="user"`表示集合中的每个元素为名为user的变量。在`<set>`标签中,使用`<foreach>`标签遍历集合中的每个元素,生成修改语句。`separator=","`表示每个元素之间用逗号分隔。
阅读全文