MyBatis
<foreach>
执行批量删除SQL语句:
-- 批量删除 18/19/20
delete from emp where id in (18, 19, 20);
接口方法:
// 批量删除员工
public void deleteById(List<Emp> ids);
XML映射文件:
<!-- 批量删除员工的操作 (18, 19, 20)-->
<!-- collection: 要遍历的集合
item:遍历出来的元素
separator:分隔符
open:遍历开始前拼接的SQL片段
close:遍历结束后拼接的SQL片段
-->
<delete id="deleteById">
delete from emp where id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>
属性:
collection:集合名称
item:集合遍历出来的元素/项
seperator:每一次遍历使用的分隔符
open:遍历开始前拼接的片段
close:遍历结束后拼接的片段
编写测试类:
@Test
public void testDeleteByIds() {
List<Integer> ids = Arrays.asList(13, 14, 15);
empMapper.deleteByIds(ids);
}
foreach主要使用使用在一些批量操作当中。