[Mybatis]5.多对一、一对多
例子为5个学生,对应1个老师。
表结构为:
student的tid为外键,关联teacher的id。
多对一
现要查询所有学生,附带上老师的信息(包括姓名)。可以用两种方式,1.嵌套处理结果集映射 2.嵌套处理查询
1.写实体类
Student实体类:
private int id;
private String name;
private Teacher teacher;
Teacher实体类
int id;
String name;
2.写xml
方法一 嵌套处理结果集映射
方法二 嵌套处理查询
先写
再写
也就是先查询到了tid,然后使用tid再去查询老师的name。
一对多
现要查询一个老师,附带上他所带的所有学生的信息。同样可以用两种方式,**1.嵌套处理结果集映射 2.嵌套处理查询 **
1.写实体类
Student实体类:
private int id;
private String name;
private int tid;
Teacher实体类
int id;
String name;
private List students;
2.写xml
方法一 嵌套处理结果集映射
方法二 嵌套处理查询
先写
再写
也就是先查询到了老师的id,然后使用id再去查询学生的信息。
总结:
多对一(映射一个对象)使用association,一对多(映射集合)使用collection
javaType用来指定实体类中属性的类型
ofType用来指定映射到集合中pojo类型