mybaits批量更新语句
时间: 2023-12-16 12:28:03 浏览: 96
MyBatis提供了批量操作的功能,可以通过以下两种方式实现批量更新语句:
1.使用foreach标签
可以使用foreach标签将需要更新的数据循环插入到SQL语句中,实现代码如下:
```xml
<update id="batchUpdate" parameterType="java.util.List">
update table_name
<set>
<foreach collection="list" item="item" separator=",">
column_name = #{item.columnName}
</foreach>
</set>
where id = #{id}
</update>
```
其中,list为需要更新的数据集合,item为集合中的每个元素,separator为分隔符,columnName为需要更新的列名。
2.使用SQL语句拼接
可以将需要更新的数据循环拼接到SQL语句中,实现代码如下:
```java
public void batchUpdate(List<Map<String, Object>> updateList) {
StringBuilder sql = new StringBuilder();
sql.append("update table_name set ");
for (Map<String, Object> updateMap : updateList) {
sql.append("column_name = ");
sql.append(updateMap.get("columnName"));
sql.append(",");
}
sql.deleteCharAt(sql.length() - 1);
sql.append(" where id = #{id}");
sqlSession.update(sql.toString());
}
```
其中,updateList为需要更新的数据集合,columnName为需要更新的列名。
阅读全文