Student student = studentService.getById(id); LambdaQueryWrapper<Student> studentLambdaQueryWrapper = new LambdaQueryWrapper<>(); studentLambdaQueryWrapper.eq(Student::getSex,student.getSex()); //班级的学生 if (!ObjectUtils.isEmpty(student.getGrade())) { studentLambdaQueryWrapper.eq(Student::getGrade,student.getGrade()); } //并且存在宿舍的 studentLambdaQueryWrapper.isNotNull(Student::getDormitoryId); List<Student> studentList = studentService.list(studentLambdaQueryWrapper); //查出自己的文件答案 LambdaQueryWrapper<TopicResult> topicResultLambdaQueryWrapper = new LambdaQueryWrapper<>(); topicResultLambdaQueryWrapper.eq(TopicResult::getStuNum, student.getStudentNumber()) .and(qw -> qw.eq(TopicResult::getTopicId, 1).or().eq(TopicResult::getTopicId, 2)); List<TopicResult> topicResults = topicResultService.list(topicResultLambdaQueryWrapper);请详细解释每一行
时间: 2024-03-14 15:48:52 浏览: 73
Student_Contact:吉隆坡
这段代码主要是对学生信息和题目结果进行查询和筛选。下面是每一行代码的解释:
1. `Student student = studentService.getById(id);` 通过id获取一名学生的信息。
2. `LambdaQueryWrapper<Student> studentLambdaQueryWrapper = new LambdaQueryWrapper<>();` 创建一个LambdaQueryWrapper对象,用于构建Lambda查询表达式。
3. `studentLambdaQueryWrapper.eq(Student::getSex,student.getSex());` 查询性别与该名学生相同的所有学生。
4. `if (!ObjectUtils.isEmpty(student.getGrade()))` 检查该名学生是否有班级信息。
5. `studentLambdaQueryWrapper.eq(Student::getGrade,student.getGrade());` 如果该名学生有班级信息,则查询同班级的所有学生。
6. `studentLambdaQueryWrapper.isNotNull(Student::getDormitoryId);` 查询所有已经分配到宿舍的学生。
7. `List<Student> studentList = studentService.list(studentLambdaQueryWrapper);` 执行查询操作,并将结果存储在List中。
8. `LambdaQueryWrapper<TopicResult> topicResultLambdaQueryWrapper = new LambdaQueryWrapper<>();` 创建一个LambdaQueryWrapper对象,用于构建Lambda查询表达式。
9. `topicResultLambdaQueryWrapper.eq(TopicResult::getStuNum, student.getStudentNumber())` 查询该名学生的题目结果。
10. `.and(qw -> qw.eq(TopicResult::getTopicId, 1).or().eq(TopicResult::getTopicId, 2));` 并且查询题目id为1或2的结果。
11. `List<TopicResult> topicResults = topicResultService.list(topicResultLambdaQueryWrapper);` 执行查询操作,并将结果存储在List中。
阅读全文