在 sql 中我们就学习过多对一和一对多的处理,现在我们要在 MyBatis 中实现对多对一和一对多的处理。
很经典的就是学生和老师之间的关系
对于学生而言:多个学生关联一个老师(多对一)
对于老师而言:一个老师教育多个学生(一对多)
创建老师表和学生表
CREATE TABLE `teacher`(
`id` INT(10) NOT NULL,
`name` VARCHAR(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO teacher(`id`, `name`) VALUES (1, '张老师')
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`)
) ENGINE= INNODB DEFAULT CHARSET=utf8
INSERT INTO `student`(`id`, `name`, `tid`) VALUES ('1', '小明', '1');
INSERT INTO `student`(`id`, `name`, `tid`) VALUES ('2', '小红', '1');
INSERT INTO `student`(`id`, `name`, `tid`) VALUES ('3', '小李', '1');
INSERT INTO `student`(`id`, `name`, `tid`) VALUES ('4', '小王', '1');
INSERT INTO `student`(`id`, `name`, `tid`) VALUES ('5', '小军', '1');
测试环境搭建
实体类 Teacher 和 Student
@Data
public class