MyBatis 使用 foreach 循环删除符合条件的学生
MyBatis 使用 foreach 循环删除符合条件的学生
本文将以删除所有年龄小于 18 岁的学生为例,介绍使用 MyBatis 的 foreach 语句遍历集合,并删除符合条件的学生。
代码实现
假设学生信息存储在 student 表中,对应的 mapper.xml 文件可以这样写:
- 定义一个删除方法
<delete id="deleteUnderageStudents" parameterType="java.util.List">
DELETE FROM student WHERE age < 18 AND id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</delete>
- 在对应的 Mapper 接口中定义该方法
public interface StudentMapper {
void deleteUnderageStudents(List<Student> students);
}
- 在调用该方法时,传入一个符合条件的学生集合
List<Student> underageStudents = // 查询年龄小于 18 岁的学生,存储在该集合中
studentMapper.deleteUnderageStudents(underageStudents);
代码解析
delete标签定义了一个删除操作,id属性指定了方法的名称,parameterType属性指定了传入参数的类型为List。where标签中,age < 18用于筛选年龄小于 18 岁的学生。id IN用于判断学生 ID 是否在集合中。foreach标签用于遍历传入的List集合,collection属性指定了集合的名称,item属性指定了循环变量的名称,open、separator、close属性分别指定了循环开始、分隔符和结束符。#{item.id}用于获取当前循环变量的 ID。
总结
通过以上代码,我们可以使用 MyBatis 的 foreach 语句遍历集合,并删除符合条件的学生。在实际应用中,需要根据具体情况修改代码,确保能够正确获取到学生的 ID。
原文地址: https://www.cveoy.top/t/topic/nIrH 著作权归作者所有。请勿转载和采集!