想实现调试请先搭一个Mybatis连MySQL数据库的环境
附个我的GitHub链接(可能经常有改动,慎用):https://github.com/Frank520lang/mybatis_liang.git
Navicat新建teacher和student两张数据表:
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);
对应的student表:
对应的teacher表:
一对多的实现:
对应的实体类:Student.class:
@Data
public class Student {
private Integer id;
private String name;
//一对多
private Integer tid;
}
对应的实体类:Teacher.class
@Data
public class Teacher {
private Integer id;
private String name;
//一对多
private List students;
}
对应的Mapper接口:TeacherMapper.java
public interface TeacherMapper extends baseMapper {
//一对多(集合)
public List manyToOne();
}
对应的mapper.xml文件:teacher.xml
select s.id sid,s.name sname,s.tid sid,t.id tid,t.name tname from student s,teacher t;
测试类:
public class StudentMapperTest {
@Resource
private StudentMapper studentMapper;
@Resource
private TeacherMapper teacherMapper;
@Test
public void testOneToMany(){
List teachers =teacherMapper.manyToOne();
System.out.println("----------------------------");
System.out.println("----------------------------");
System.out.println("----------------------------");
System.out.println(teachers.get(1));
System.out.println("----------------------------");
System.out.println("----------------------------");
System.out.println("----------------------------");
for (Teacher teacher : teachers) {
System.out.println(teacher);
}
System.out.println("----------------------------");
System.out.println("----------------------------");
System.out.println("----------------------------");
}
}
单元测试结果:



