关联关系映射

目录

一、一对多关联关系

  一对多--->

二、多对多关联关系


一、一对多关联关系

例如:每个老师对应多个班级;一本书有多个种类

                 如书籍中,各类书籍对应的种类,中间存在一个书籍类别中间表 书籍编号bid和 cid类别编号

1.将数据表导入数据库中

2.通过mybatis-generator插件生成dao、mapper、model

   1)配置mybatis-generator插件生成文件位置
   2)修改generatorConfig.xml配置文件的生成目录(mapper和model)及对应生成关系

3.修改Customer、Order实体类
   1)实现序列化接口
   2)建立实体映射关联关系(一对多、多对一)
   #一对多:一个客户对应多个订单
   private List<Order> orders=new ArrayList<Order>();

   #多对一:多个订单对应一个客户(一个订单对应一个客户)
   private Customer customer;
   

4.配置mybatis关联映射

  一对多--->


   <resultMap id="one2many" type="Customer">
        <id column="customer_id" property="customerId"/>
        <result column="customer_name" property="customerName"/>
        <!-- 一对多的关系 -->
        <!-- property: 指的是集合属性的值, ofType:指的是集合中元素的类型 -->
        <collection property="orders" ofType="Order">
            <id column="order_id" property="orderId"/>
            <result column="order_no" property="orderNo"/>
        </collection>
    </resultMap>'


 
/**
 * 对应t_hibernate_order表
 */
public class Order {
    private Integer orderId;
 
    private String orderNo;
 
    public Order(Integer orderId, String orderNo) {
        this.orderId = orderId;
        this.orderNo = orderNo;
    }
 
    public Order() {
        super();
    }
 
    public Integer getOrderId() {
        return orderId;
    }
 
    public void setOrderId(Integer orderId) {
        this.orderId = orderId;
    }
 
    public String getOrderNo() {
        return orderNo;
    }
 
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }
}

 OrderVo类


public class OrderVo extends Order {
    //通过订单号查询本次订单的详情信息以及对应的订单信息
    private List<OrderItem> orderItems = new ArrayList<>();
 
    public List<OrderItem> getOrderItems() {
        return orderItems;
    }
 
    public void setOrderItems(List<OrderItem> orderItems) {
        this.orderItems = orderItems;
    }
 
}

OrderItem类

package com.ssm.model;
 
public class OrderItem {
    private Integer orderItemId;
 
    private Integer productId;
 
    private Integer quantity;
 
    private Integer oid;
 
    public OrderItem(Integer orderItemId, Integer productId, Integer quantity, Integer oid) {
        this.orderItemId = orderItemId;
        this.productId = productId;
        this.quantit
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值