zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    页面渲染1——创建对象模型
    HTTP 缓存
    web安全字体
    图片优化
    基于文本内容的压缩
    Mac homebrew的熟悉和常用指令
    二、Java注释
    一、Java环境变量配置
    JS中的逻辑运算符&&、||
    js 中的 深拷贝与浅拷贝
  • 原文地址:https://www.cnblogs.com/cat-fish6/p/9298842.html
Copyright © 2011-2022 走看看