mybatis之关联关系

本文介绍了mybatis中的一对多和多对多关联关系处理。通过实例展示了如何使用mybatis-generator生成相关模型、mapper及service层代码。对于一对多关系,展示了OrderVo和OrderItemVo的映射配置与查询方法;而对于多对多关系,重点在于t_hibernate_book、t_hibernate_book_category和t_hibernate_category三张表的交互,包括HbookVo和CategoryVo的查询实现。
摘要由CSDN通过智能技术生成

mybatis之关联关系

一对多
  1. 准备好数据库,将数据导入库中
    首先先用逆向生成工具生成t_hibernate_order、t_hibernate_order_item
    这两张表对应的model与mapper
    在这里插入图片描述
    在这里插入图片描述

  2. 通过mybatis-generator插件生成dao、mapper、model
    3.
    代码
    实体类
    OrderVo.java

package com.xzy.model.vo;

import com.xzy.model.Order;
import com.xzy.model.OrderItem;

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

/**
 * @author XZY
 * @site www.Xzy.com
 * @company
 * @create  2019-09-26 11:09
 */
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.java

package com.xzy.model.vo;

import com.xzy.model.Order;
import com.xzy.model.OrderItem;

/**
 * @author XZY
 * @site www.Xzy.com
 * @company
 * @create  2019-09-26 11:10
 */
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.xzy.model.vo.OrderVo" >
    <result property="orderId" column="order_id"></result>
    <result property="orderNo" column="order_no"></result>
    <collection property="orderItems" ofType="com.xzy.model.OrderItem">
      <result property="orderItemId" column="order_item_id"></result>
      <result property="oid" column="oid"></result>
      <result property="productId" column="product_id"></result>
      <result property="quantity" column="quantity"></result>
    </collection>
  </resultMap>
  
  
	<select id="selectByOid" resultMap="OrderVoMap" parameterType="java.lang.Integer">
	   select * from t_hibernate_order o,t_hibernate_order_item oi
	    where o.order_id = oi.oid
	    and o.order_id = #{oid}
	</select>

OrderMapper.java
OrderVo selectByOid(@Param(“oid”) Integer oid);

package com.xzy.mapper;

import com.xzy.model.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值