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>

 

 

 

 

posted @ 2014-04-10 17:49  聆听自由  阅读(179)  评论(0编辑  收藏  举报