一: foreach 用于 select * from tablename where colname in (A,B,C……);
1:service 层:
Set teacherNums = new HashSet<>();
Set departments = new HashSet<>();
list.stream().forEach(s->{
teacherNums.add(s.getTeacherNumber());
departments.add(s.getAcademeName());
});
List gxyTeacherDtos = gxyTeacherMapper.selectTeaNumberBySchool(user.getOrgJson().getSchoolId(),user.getOrgJson().getSnowFlakeId(),teacherNums);
Set allTeacherNum = gxyTeacherDtos.stream().map(GxyTeacherDto::getTeacherNumber).collect(Collectors.toSet());
2: mapper 层:
List selectTeaNumberBySchool(@Param("schoolId")String schoolId,@Param("snowFlakeId")Long SnowFlakeId,@Param("list") Set teaNumbers);
3:xml:
SELECT * FROM gxy_teacher WHERE is_deleted = 0
AND school_id = #{schoolId}
AND snow_flake_id = #{snowFlakeId}
AND teacher_number in
open="(" separator="," close=")">
#{item}
二: update 多条sql
mapper 层:
int updateBatchByDefault(@Param("list") List teacherStudentEntities,@Param("tableName")String tableName);
xml:
update ${tableName}gxy_job
plan_id = #{item.planId}
where student_id = #{item.studentId} and plan_id = #{item.defaultPlanId} and snow_flake_id = #{item.snowFlakeId} and is_deleted=0
item指 List 中的一个 GxyPlanTeacherStudentEntity 实例对象。
三: 多个查询sql union all:
impl层:
List jobEntitys = gxyJobMapper.selectJob(jobs);
mapper 层:
List selectJob(@Param("list") List jobs);
xml:
select t1.*
from ${item.tableName1}gxy_job AS t1
AND t1.student_id = #{item.studentId}
AND t1.plan_id = #{item.planId}
AND t1.snow_flake_id = #{item.snowFlakeId}
and t1.state=1 and t1.is_deleted=0