测试环境的搭建:
本篇文章的测试环境搭建和上篇文章基本相似,如有需要请移至上篇文章
上篇文章所提到的多对一是多个学生对应一个老师,是在查询学生信息的同时去获取对应老师的相关信息,而本篇文章的一对多,是在在查询老师信息的同时去获取对应学生的信息
新建实体类:
在实体类上,与上篇文章中的多对一不同的地方在于:
多对一:老师作为学生的一个属性
而这里的一对多:学生作为老师的一个属性
Student类:
package pojo; import lombok.Data; @Data public class Student { private int id; private String name; private int tid; }
teacher类:
package pojo; import lombok.Data; import java.util.List; @Data public class Teacher { private int id; private String name; //一个老师对应多个学生 private List<Student> students; }
注:数据库中表的创建和数据的插入步骤,与上篇文章的多对一完全相同,这里不再进行展示
新建Mapper接口:
student_Mapper接口:
package dao; public interface student_Mapper { }
teacher_Mapper接口:
package dao; import pojo.Teacher; import java.util.List; public interface teacher_Mapper { //获取老师 List<Teacher> getTeacher(); }
建立Mapper.xml文件:
student_Mapper.xml文件:
由于一对多是多个学生作为老师的属性,SQL语句自然是在teacher_Mapper.xml文件中进行书写,所以对于学生的mapper映射文件只需要绑定对应的接口,无需再进行其他操作
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="dao.student_Mapper"> </mapper>
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="dao.teacher_Mapper"> <select id="getTeacher" resultType="Teacher"> select * from teacher; </select> </mapper>