一對多查詢(10)

前記:這是很早之前自學學習myBatis時的筆記,內容比較基礎,適合新手,內容基本是來自網絡,如有雷同,敬請諒解!  

     一對多查詢

示例:

<resultMaptype="cn..po.Orders"id="userorderdetailmap">

  <id property="id"column="id"/>

  <result property="user_id"column="user_id"/>

  <result property="number"column="number"/>

  <association property="user"javaType="cn.itcast.mybatis.po.User">

     <id property="id"column="user_id"/>

     <result property="username"column="username"/>

     <result property="address"column="address"/>

  </association>

   <collectionproperty="orderdetails" 

               ofType="cn.po.Orderdetail">

     <id property="id"column="orderdetail_id"/>

     <result property="items_id"column="items_id"/>

     <result property="items_num"column="items_num"/>

   </collection>

</resultMap>

collection部分定義了查詢訂單明細信息。

collection:表示關聯查詢結果集

       property="orderdetails"關聯查詢的結果集存儲在cn.itcast.mybatis.po.Orders上那個屬性。

       ofType="cn.itcast.mybatis.po.Orderdetail"指定關聯查詢的結果集中的對象類型即List中的對象類型。

<id />及<result/>的意義同一對一查詢。


上邊定義的resultMap中黃色部分和一對一查詢信息的resultMap相同,這裏使用繼承可以不再填寫重複的內容,如下:

<resultMaptype="cn..po.Orders"  

           id="userorderdetailmap"

           extends="userordermap">

  <collectionproperty="orderdetails"

                ofType="cn..po.Orderdetail">

      <id property="id"column="orderdetail_id"/>

      <result property="items_id"column="items_id"/>

      <result property="items_num"column="items_num"/>

  </collection>

</resultMap>

使用extends繼承信息userordermap

使用:

<selectid="findOrdersDetailList"resultMap="userorderdetailmap">

    SELECT

    orders.*,

    user.username,

    user.address,

    orderdetail.id orderdetail_id,

    orderdetail.items_id,

    orderdetail.items_num

    FROM orders,user,orderdetail

    WHERE orders.user_id = user.id

    AND orders.id = orderdetail.orders_id

</select>

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章