可以使用动态SQL的foreach标签来实现根据两个LIST集合作为条件的查询。

首先,创建一个Mapper接口,定义一个方法来查询不存在的学生ID和试题题号:

public interface MybatisMapper {
    List<Map<String, Object>> findMissingRecords(@Param("studentIds") List<String> studentIds, @Param("questionIds") List<String> questionIds);
}

然后,在对应的Mapper XML文件中,使用foreach标签来遍历学生ID和试题题号的集合,并构建查询语句:

<select id="findMissingRecords" resultType="java.util.Map">
    SELECT student_id, question_id
    FROM your_table
    WHERE student_id NOT IN
        <foreach collection="studentIds" item="studentId" open="(" separator="," close=")">
            #{studentId}
        </foreach>
    AND question_id NOT IN
        <foreach collection="questionIds" item="questionId" open="(" separator="," close=")">
            #{questionId}
        </foreach>
</select>

接下来,可以在业务逻辑中调用该方法来查询不存在的学生ID和试题题号:

@Autowired
private MybatisMapper mybatisMapper;

public void findMissingRecords(List<String> studentIds, List<String> questionIds) {
    List<Map<String, Object>> missingRecords = mybatisMapper.findMissingRecords(studentIds, questionIds);
    // 处理查询结果
}

这样,就可以根据两个LIST集合作为条件,查询出数据库中不存在的学生ID和试题题号


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

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