- 一、多对一
- 1.association标签
- 2.分步查询
- 二、一对多
- 1.collection标签
- 2.分步查询
数据库
teacher表
student表
例:多个学生被一个老师教,查询学生信息同时查询出教师信息
- 实体类
teacher
@Data
public class Teacher {
private String tid;
private String name;
}
student
@Data
public class Student {
private String sid;
private String name;
private Teacher teacher;
}
- mapper
public interface StudentMapper {
//查询所有学生的信息
public List findAllStudent();
}
- xml
SELECT s.sid, s.NAME sname, s.tid, t.NAME tname FROM student s, teacher t WHERe s.tid = t.tid
2.分步查询property:需要处理的多对映射关系属性名
javaType:该属性的类型
先查询出该学生的全部信息(包括教师id)
再通过教师id查询到教师信息
二、一对多
例:一个老师教多个学生,查询该老师时显示所教所有学生信息
- 实体类
teacher
@Data
public class Teacher {
private String tid;
private String name;
private List student;
}
student
@Data
public class Student {
private String sid;
private String name;
private String tid;
}
- mapper
public interface TeacherMapper {
public Teacher findTeacherById(String id);
}
- xml
SELECT s.sid, s.NAME sname, s.tid, t.NAME tname FROM student s, teacher t WHERe t.tid = #{id} AND s.tid = t.tid
2.分步查询ofType:表示该属性对应的集合存储类型(List studnet集合代表的存储类型)
select * from teacher where tid = #{id} select * from student where tid = #{id}



