MyBatis 使用 foreach 循环删除符合条件的学生

本文将以删除所有年龄小于 18 岁的学生为例,介绍使用 MyBatis 的 foreach 语句遍历集合,并删除符合条件的学生。

代码实现

假设学生信息存储在 student 表中,对应的 mapper.xml 文件可以这样写:

  1. 定义一个删除方法
<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>
  1. 在对应的 Mapper 接口中定义该方法
public interface StudentMapper {
  void deleteUnderageStudents(List<Student> students);
}
  1. 在调用该方法时,传入一个符合条件的学生集合
List<Student> underageStudents = // 查询年龄小于 18 岁的学生,存储在该集合中
studentMapper.deleteUnderageStudents(underageStudents);

代码解析

  • delete 标签定义了一个删除操作,id 属性指定了方法的名称,parameterType 属性指定了传入参数的类型为 List
  • where 标签中,age < 18 用于筛选年龄小于 18 岁的学生。id IN 用于判断学生 ID 是否在集合中。
  • foreach 标签用于遍历传入的 List 集合,collection 属性指定了集合的名称,item 属性指定了循环变量的名称,openseparatorclose 属性分别指定了循环开始、分隔符和结束符。
  • #{item.id} 用于获取当前循环变量的 ID。

总结

通过以上代码,我们可以使用 MyBatis 的 foreach 语句遍历集合,并删除符合条件的学生。在实际应用中,需要根据具体情况修改代码,确保能够正确获取到学生的 ID。

MyBatis 使用 foreach 循环删除符合条件的学生

原文地址: https://www.cveoy.top/t/topic/nIrH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录