码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis_20_结果集映射 resultMap 复杂类型使用(一对多的处理)

时间:2021-05-24 01:42:09      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:arraylist   cti   poj   HERE   映射   pre   each   指定   connect   

结果集映射 resultMap 复杂类型使用(一对多的处理)

  - association 关联 [多对一]  多个学生对应一个老师

  - connection  集合 [一对多]  一个老师对应多个学生

  - javaType 和 ofType

    javaType 用来指定实体类中的某个属性的类型
  
    ofType  用来指定集合映射到List或者集合中的pojo类型。(集合泛型中的约束类型)

     
  - 例如一个老师对应多个学生,对于老师而言就是一对多的关系。
   
  - 第一种方式   获取指定老师下的所有学生信息,以及该老师的信息

   <select id="getTeacher1" resultMap="getTeacher1">
       SELECT
          S.ID SID, S.NAME SNAME, T.NAME TNAME,T.ID TID
   	FROM
          STUDENT S
       JOIN
          TEACHER T
       ON
          S.TID=T.ID
       WHERE
          T.ID=#{tid};

    </select>

   <resultMap id="getTeacher1" type="com.shige.pojo.Teacher">
           <result property="id" column="tid"/>
           <result property="name" column="tname"/>

           <!--复杂类型-->
           <collection property="students" ofType="com.shige.pojo.Student">
               <result property="id" column="sid"/>
               <result property="name" column="sname"/>
               <result property="tid" column="tid"/>
           </collection>

   </resultMap>



 - 第二种方式(子查询) 获取指定老师下的所有学生信息,以及该老师的信息

   <select id="getTeacher2" resultMap="getTeacher2">
       select * from teacher where id=#{tid};
   </select>

   <resultMap id="getTeacher2" type="com.shige.pojo.Teacher">
       <collection property="students"  javaType="ArrayList"  ofType="com.shige.pojo.Student"  select="getStudent"  column="id"/>
   </resultMap>

   <select id="getStudent" resultType="com.shige.pojo.Student">
       select * from student where tid=#{tid};
   </select>

Mybatis_20_结果集映射 resultMap 复杂类型使用(一对多的处理)

标签:arraylist   cti   poj   HERE   映射   pre   each   指定   connect   

原文地址:https://www.cnblogs.com/szqengr/p/14744423.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!