1.多对一:
多个学生,对应一个老师
对于学生这边而言,关联...多个学生,关联一个老师【多对一】
对于老师而言,集合,一个老师又很多学生【一对多】
实体类:
//使用了lombok
@Data
public class Teacher {
private int id;
private String name;
}
@Data
public class Student {
private int id;
private String name;
//学生需要关联一个老师!
private Teacher teacher;
}
按照查询嵌套处理:(子查询)
select * from student
select * from teacher where id = #{id}
按照结果嵌套处理:(连表查询)
select s.id sid,s.name sname,t.name tname,t.id tid
from student s,teacher t
where s.tid=t.id;
2.一对多
比如:一个老师拥有多个学生!
对于老师而言,就是一对多的关系
@Data
public class Teacher {
private int id;
private String name;
//一个老师拥有多个学生
private List students;
}
@Data
public class Student {
private int id;
private String name;
private int tid;
}
按照结果嵌套处理:
select s.id sid,s.name sname,t.name tname,t.id tid
from student s,teacher t
where s.tid=t.id and t.id = #{tid}
按照查询嵌套处理
select * from mybatis.teacher where id = #{tid}
select * from mybatis.student where tid = #{tid}
小结
1.关联-association【多对一】
2.集合-collection 【一对多】
3.javaType & ofType
JavaType用来指定实体类中属性的类型
ofType用来指定映射到List或者集合中的pojo类型,泛型中的约束类型!
注意点:
保证SQL的可读性,尽量保证通俗易懂
注意一对多和多对一中,属性名和字段的问题!
如果问题不好排查错误,可以使用日志,建议使用Log4j
以上内容为学习b站狂神老师mybatis笔记,有错误欢迎指出,大佬勿喷.