MyBatis关联查询,多对一与一对多
多对一查询:
表结构:
CREATE TABLE `teacher` (
`id` INT(10) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
PRIMARY KEY (`id`)
)#教师表
CREATE TABLE `student` (
`id` INT(10) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
`tid` INT(10) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fktid` (`tid`),
CONSTRAINT `fktid` FOREIGN KEY (`tid`) REFERENCES `teacher` (`id`)
)#学生表
实体类:
public class Student {
private int id;
private String name;
private Teacher teacher;
}
public class Teacher {
private int id;
private String name;
}
查询需求:(学生id,学生姓名,教师id,教师姓名)
sql语句:
select *from`student`, `teacher`where`teacher`.`id`=`student`.`tid`;
在mybatis中的接口:
public interface StudentMapper {
public List getStudent1();
public List getStudent2();
public List getStudent3();
}
编写maper文件:
一对多查询:
实体类:
public class Student {
private int id;
private String name;
private int tid;
}
public class Teacher {
private int id;
private String name;
private List studentList;
}
接口:
public interface TeacherMapper {
Teacher getTeacherById1(@Param("tid") int id);
Teacher getTeacherById2(@Param("tid") int id);
}
xml配置: