MyBatis 【一对多、多对一 || 多对多也一样的】【非回环关联】
1.Class(班级)
<mapper namespace="com.dao.ClassesDao"> <!-- 意图想通过获得组和组中的所有student,此处相当于one2many --> <resultMap type="com.entity.Classes" id="resultClasses"> <id column="cid" property="id"/> <result column="cname" property="name"/> <collection property="students" ofType="com.entity.Student" column="sid"> <id column="sid" property="id"/> <result column="sname" property="name"/> </collection> </resultMap> <select id="get" resultMap="resultClasses" parameterType="int"> SELECT c.id as cid, c.name as cname, s.id as sid, s.name as sname FROM classes c, student s where c.id=s.classid and c.id = #{id} </select> </mapper>
2.Student(学生)
<mapper namespace="com.dao.StudentDao"> <resultMap type="com.entity.Student" id="resultStudent"> <id column="sid" property="id"/> <result column="sname" property="name"/> <association property="classes" javaType="com.entity.Classes" > <id column="cid" property="id"/> <result column="cname" property="name"/> </association> </resultMap> <select id="get" parameterType="int" resultMap="resultStudent"> select s.id as sid, s.name as sname, c.id as cid, c.name as cname from student s left join classes c on s.classid = c.id where s.id = #{id} </select> </mapper>