public class Teacher { private int id; private String name; // 一个老师多个学生 private List<Student> student; }
public class Student { private int id; private String name; private int tid; }
<select id="getTeacher" resultMap="TeacherStudent"> select s.id sid, s.name sname, t.name tname, t.id tid from student s, teacher t where s.tid = t.id and t.id = #{tid}; </select> <resultMap id="TeacherStudent" type="Teacher"> <result property="id" column="tid"/> <result property="name" column="tname"/> <collection property="student" ofType="Student"> <result property="id" column="sid"/> <result property="name" column="sname"/> <result property="tid" column="tid"/> </collection> </resultMap>
<select id="getTeacher2" resultMap="TeacherStudent2"> select * from teacher where id = #{tid}; </select> <resultMap id="TeacherStudent2" type="Teacher"> <collection property="student" javaType="ArrayList" ofType="Student" select="getStudentByTeacherId" column="id"/> </resultMap> <select id="getStudentByTeacherId" resultType="Student"> select * from student where tid = #{tid} </select>
public class MyTest { @Test public void getTeacherTest() { SqlSession sqlSession = MybatisUtils.getSqlSession(); TeacherMapper mapper = sqlSession.getMapper(TeacherMapper.class); Teacher teacher = mapper.getTeacher2(1); System.out.println(teacher); sqlSession.close(); } }
注意点:
原文:https://www.cnblogs.com/shangwei/p/15267342.html