• MyBatis多对一,一对多,多对多,一对多关联查询


    一、Person实体类

     1 public class Person {
     2     private Integer personId;
     3     private String name;
     4     private Integer gender;
     5     private String personAddr;
     6     private Date birthday;  
     7     //与订单的关系是一对多
     8     private List<Orders> orderList;
     9     //与角色是一对多关系
    10     private List<Role> roleList;  
    11     //与身份证是一对一关系
    12     private IdCard ic;
    13 }

    二、mapper映射文件相关配置

     1 <!-- =====================一对多关联查询============================ -->
     2   <resultMap type="person" id="selectOrderByPersonIdRm" extends="BaseResultMap">
     3       <collection property="orderList" ofType="cn.tx.model1.Orders">
     4           <id column="ORDER_ID" property="orderId" jdbcType="INTEGER" />
     5         <result column="PERSON_ID" property="personId" jdbcType="INTEGER" />
     6         <result column="TOTAL_PRICE" property="totalPrice" jdbcType="REAL" />
     7         <result column="ADDR" property="addr" jdbcType="VARCHAR" />
     8       </collection>
     9   </resultMap>
    10   <select id="selectOrderByPersonId" parameterType="int" resultMap="selectOrderByPersonIdRm">
    11       SELECT * from person p, orders o where p.PERSON_ID = o.PERSON_ID and p.PERSON_ID = #{personId};
    12   </select>
    <resultMap type="person" id="selectOrderAndDetailByPersonIdRM" extends="BaseResultMap">
          <collection property="orderList" ofType="cn.tx.model1.Orders">
              <id column="ORDER_ID" property="orderId" jdbcType="INTEGER" />
            <result column="PERSON_ID" property="personId" jdbcType="INTEGER" />
            <result column="TOTAL_PRICE" property="totalPrice" jdbcType="REAL" />
            <result column="ADDR" property="addr" jdbcType="VARCHAR" />
            <collection property="detailList" ofType="cn.tx.model1.OrderDetail">
                <id column="DETAIL_ID" property="detailId" jdbcType="INTEGER" />
                <result column="ORDER_ID" property="orderId" jdbcType="INTEGER" />
                <result column="ITEM_NAME" property="itemName" jdbcType="VARCHAR" />
                <result column="PRICE" property="price" jdbcType="REAL" />
                <result column="QUANTITY" property="quantity" jdbcType="INTEGER" />
            </collection>
          </collection>
      </resultMap>
      <select id="selectOrderAndDetailByPersonId" parameterType="int" resultMap="selectOrderAndDetailByPersonIdRM">
          SELECT * from person p, orders o,order_detail od where p.PERSON_ID = o.PERSON_ID and o.ORDER_ID = od.ORDER_ID and p.PERSON_ID = #{personId}
      </select>
    <resultMap type="person" id="selectPersonAndRoleByPersonIdRM" extends="BaseResultMap">
          <collection property="roleList" ofType="cn.tx.model1.Role">
              <id column="ROLE_ID" property="roleId" jdbcType="INTEGER" />
            <result column="ROLE_NAME" property="roleName" jdbcType="VARCHAR" />
            <result column="DESCPRIT" property="descprit" jdbcType="VARCHAR" />
          </collection>
      </resultMap>
      <select id="selectPersonAndRoleByPersonId" parameterType="int" resultMap="selectPersonAndRoleByPersonIdRM">
          SELECT * from person p,person_role pr,role r where p.PERSON_ID=pr.PERSON_ID AND pr.ROLE_ID=r.ROLE_ID AND p.PERSON_ID=#{id}
      </select>
  • 相关阅读:
    Windows下安装tesserocr
    Python中的那些“坑”
    【Python3爬虫】用Python中的队列来写爬虫
    【Python3爬虫】常见反爬虫措施及解决办法(三)
    【Python3爬虫】常见反爬虫措施及解决办法(二)
    【Python3爬虫】常见反爬虫措施及解决办法(一)
    【Python3爬虫】教你怎么利用免费代理搭建代理池
    【Python3爬虫】自动查询天气并实现语音播报
    【Python3爬虫】百度一下,坑死你?
    【Python3爬虫】为什么你的博客没人看呢?
  • 原文地址:https://www.cnblogs.com/cat-fish6/p/9298842.html
Copyright © 2020-2023  润新知