Mybatis关联关系映射

本文介绍了如何使用Mybatis处理一对多和多对多关联关系。在一对多关系中,通过订单ID查询订单及其订单项信息,详细展示了实体类、Mapper映射和Service的实现。而在多对多关系部分,以书籍查询为例,解释了如何处理书籍与类别之间的关联,包括实体类扩展、Mapper配置和服务接口的实现。
摘要由CSDN通过智能技术生成

一、一对多关联关系

 需求:通过mybatis完成订单查询,给一个订单id,查询对应订单及订单项的信息

实现:

order:定义一个引用对象:List<OrderItem> OrderItems

OrderItem:定义一个引用对象 Order Order

resultMap的映射

1、在generatorConfig.xml中根据表生成实体类

<table schema="" tableName="t_hibernate_order" domainObjectName="Order"
       enableCountByExample="false" enableDeleteByExample="false"
       enableSelectByExample="false" enableUpdateByExample="false">
</table>
<table schema="" tableName="t_hibernate_order_item" domainObjectName="OrderItem"
       enableCountByExample="false" enableDeleteByExample="false"
       enableSelectByExample="false" enableUpdateByExample="false">
</table>
<table schema="" tableName="t_hibernate_book" domainObjectName="Hbook"
       enableCountByExample="false" enableDeleteByExample="false"
       enableSelectByExample="false" enableUpdateByExample="false">
</table>
<table schema="" tableName="t_hibernate_category" domainObjectName="Category"
       enableCountByExample="false" enableDeleteByExample="false"
       enableSelectByExample="false" enableUpdateByExample="false">
</table>
<table schema="" tableName="t_hibernate_book_category" domainObjectName="HbookCategory"
       enableCountByExample="false" enableDeleteByExample="false"
       enableSelectByExample="false" enableUpdateByExample="false">
</table>

生成后注意切换mybatis-generatorConfig -e为其他任意一个,避免二次生成

创建两个实体类

OrderVo

package com.dhm.vo;

import com.dhm.model.Order;
import com.dhm.model.OrderItem;

import java.util.ArrayList;
import java.util.List;

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;
    }
}

OrderItemVo

package com.dhm.vo;


import com.dhm.model.Order;
import com.dhm.model.OrderItem;

public class OrderItemVo extends OrderItem {
    private Order order;

    public Order getOrder() {
        return order;
    }

    public void setOrder(Order order) {
        this.order = order;
    }
}

OrderMapper.xml

 <resultMap id="OrderVoMap" type="com.dhm.vo.OrderVo" >
    <result
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值