在MyBatis中,可以使用<update>
标签来实现批量更新数据。下面是一个示例:
<update id="batchUpdate" parameterType="java.util.List">
update table_name
<set>
<foreach collection="list" item="item" index="index" separator="," >
column_name = #{item.columnName}
</foreach>
</set>
where id in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
List<Data> dataList = new ArrayList<>();
// 添加需要更新的数据到dataList中
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
int rows = sqlSession.update("batchUpdate", dataList);
sqlSession.commit();
} finally {
sqlSession.close();
}
在上面的示例中,batchUpdate
是Mapper XML文件中定义的批量更新数据的SQL语句的id,dataList
是需要更新的数据列表。调用sqlSession.update
方法执行SQL语句并传入数据列表,最后通过sqlSession.commit
提交事务。