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>
  • 相关阅读:
    JBoss中配置虚拟目录以及设置浏览器地址输入框支持中文的方法
    实现表格鼠标经过变色,点击变色并选中项目
    JBoss4.0与金山词霸有端口冲突
    Hibernate查询方式比较
    数字证书使用Javascript在浏览器中自动安装的解决方案
    JBoss设置URI编码,使浏览器URL支持中文
    VC++中list的使用方式
    使用JBoss管理数据库连接的方法(JDNI方式)
    CefSharp中实现Chrome中jS导出Excel
    WP7备注(27)(DependencyProperty|RoutedPropertyChangedEventHandler)
  • 原文地址:https://www.cnblogs.com/cat-fish6/p/9298842.html
Copyright © 2011-2022 走看看