最近工作中遇到了批量处理的问题。在此打卡记录。
问题描述:参数是一个list,我需要用这个list里的数据当做条件去查询,一开始我才用的是循环,遍历出想要的参数去进行查询,这样功能虽然实现了,但是后来数据量加大,速度慢的劣势就显示出来了。
后来了解到批处理,就改善了一下这个方法,使用 mysql 中的IN函数
<select id="getMenuListByListId" resultType="com.visionwill.yuankan5000.vo.MenuVo">
select id, name, parent_id,
cname, valid
from menu
where id in
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</select>
修改的时候批处理的方法
<foreach collection="list" item="doc" index="index" separator =";">
update table_name
<set>
psw = #{doc.psw,jdbcType=INTEGER},
update_time = #{doc.updateTi