需求描述: 将符合某条件的几条记录删除
解决思路: 对于多个 id, 可以使用 sql 关键词 in , 只要满足数据库的 id 在你的 id 集合或者 list 中, 就删除, 从而实现批量删除. 循环 delete 方法是在是 low 到爆, 就不再提了.
代码:
- List<OhSysPriRoleOrg> roList = (List<OhSysPriRoleOrg>)dao.findForList("OhSysPriRoleOrgMapper.getResByRoleIdAndOrgId",paramMap);
- // 删除
- dao.batchDelete("XXXRoleOrgMapper.deleteById",roList);
mapper 中的 sql:
- <delete id="deleteById" parameterType="String">
- delete from <include refid="tableName"></include>
- where
- role_org_id in
- <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
- #{item.roleOrgId}
- </foreach>
- </delete>
总结: 注意用好 foreach 就行, 其中的 collection 是什么类型的一定要对应好.
来源: http://www.bubuko.com/infodetail-2753447.html