zoukankan      html  css  js  c++  java
  • Mybatis中一对多与多对一的配置

     User:用户表
    Order:订单表
     
    一、表与表之间的关系
    一对多    一个用户对应多个订单
    多对一 多个订单对应一个用户

    1.一对多
    实体类user中包含一个属性
    List<Order> orders;

    在查询一个用户信息的同时 还可以映射出一个用户对应的所有订单信息 
    uid作为Order表的外键
    即在User表中执行一个
    select * from user where uid = ?
    时,还应该附带的在Order表中执行一个
    select * from order where uid = ?
    来查询出相应的订单信息

    2.多对一
    实体类Order中包含一个属性
    User user;
    在查询一个订单信息的同时 还可以映射出一个订单对应的用户信息 
    uid是Order的外键,Order表中包含一个uid字段。
    即在Order表中执行一个
    select * from order where oid = ?
    时,还应该附带的在user表中执行一个
    select * from user where uid = ?
    用以查询出对应的用户信息
     
    二、在xml中的配置
     在xml配置中
    column:指名查询语句中的查询字段名,多与表中字段名对应。
    property:指名实体类中的属性名 
     
    在UserMapper.xml中进行一对多的配置

     代码:

    <collection column="uid" property="orders" fetchType="lazy"
      select="mystoreyang.OrderMapper.selectByUid">
    </collection>

    在OrderMapper.xml中进行多对一的配置

     代码:

    <association column="uid" property="ouser" fetchType="eager"
      select="mystoreyang.mapper.UserMapper.selectByPrimaryKey">
    </association>

  • 相关阅读:
    洛谷P1948 [USACO08JAN]电话线Telephone Lines
    bzoj4152 [AMPPZ2014]The Captain
    洛谷P1396 营救
    洛谷P1821 [USACO07FEB]银牛派对Silver Cow Party
    洛谷P2002 消息扩散
    Uoj308【UNR #2】UOJ拯救计划
    洛谷P1937 [USACO10MAR]仓配置Barn Allocation
    洛谷P3740 [HAOI2014]贴海报
    洛谷P2344 奶牛抗议
    Android(java)学习笔记124:利用Service在后台播放背景音乐
  • 原文地址:https://www.cnblogs.com/yang37/p/11113716.html
Copyright © 2011-2022 走看看