前言
最 low 的办法批量删除数据,自然是用for循环来删除。
尝试用Mybatis 语法组装sql 进行批量删除。
- 常用的批量删除语句: in 语句
上代码:
<delete id="deleteAppleByIds" parameterType="java.lang.String">
delete from screen_area_nf_summary where id in
<foreach item="ids" collection="array" open="(" separator="," close=")">
#{ids}
</foreach>
</delete>
- 遇到 某张表 是联合主键的,批量删除 用 in 就不合适了
解决办法:在 where 后面 用 or 循环拼装
上代码:
<delete id="deleteAppleByIds" parameterType="java.util.ArrayList">
delete from Apple where
<foreach collection="list" item="item" index="index" separator="or">
( id=#{item.id} and month = #{item.month} )
</foreach>
</delete>