本文主要讲解关于使用mybatis是多表关联,一对一和一对多如何进行关系映射,以及一对多查询时出现n+1问题的解决方法,本次使用oracle数据库为例。
model对象
@Table(name = "SEAT")
public class Seat {
private String seatId; //座位id, 字段名:SEAT_ID
private String seatCode; //座位号, 字段名:SEAT_CODE
public String getSeatId() {
return seatId;
}
public void setSeatId(String seatId) {
this.seatId = seatId;
}
public String getSeatCode() {
return seatCode;
}
public void setSeatCode(String seatCode) {
this.seatCode = seatCode;
}
}
@Table(name = "STUDENT")
public class Student {
//@Column(name = "STU_ID") //注意:如果命名不满足驼峰形式或设置不规则的命名时如stuID,应绑定字段名,否则查询时易报字段异常
@Id
private String stuId; //用户id 字段名:STU_ID
private String stuName; //用户名称 字段名:STU_NAME
private String stuSeatId; //座位id, 字段名:STU_SEAT_ID ,此处字段命名最好不要用SEAT_ID,
//以便后面使用resultMap绑定字段时命名不对学生表冲突,导致关联数据无法查出
private String stuTeaId; //教师id, 字段名:STU_TEA_ID,命名同上
private Seat seat; //座位对象
public String getStuId() {
return stuId;
}
public void setStuId(String stuId) {
this.stuId = stuId;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
th