1. 首先需要在com.ecommerce.book包下新建一个mapper包,用于存放mybatis的mapper接口和xml配置文件。
  2. 在mapper包下新建一个OrderItemMapper接口,用于定义联合查询的方法。代码如下:
package com.ecommerce.book.mapper;

import com.ecommerce.book.entity.OrderItem;
import com.ecommerce.book.entity.Product;

public interface OrderItemMapper {
    List<OrderItem> getOrderItemsWithProduct(); //联合查询方法
}
  1. 在mapper包下新建一个OrderItemMapper.xml文件,用于配置联合查询的SQL语句。代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.ecommerce.book.mapper.OrderItemMapper">

    <resultMap id="OrderItemResultMap" type="com.ecommerce.book.entity.OrderItem">
        <id property="id" column="id"/>
        <result property="productId" column="product_id"/>
        <result property="quantity" column="quantity"/>
        <result property="price" column="price"/>
        <<association property="product" column="product_id" javaType="com.ecommerce.book.entity.Product" select="getProductById"/>
    </resultMap>

    <select id="getOrderItemsWithProduct" resultMap="OrderItemResultMap">
        SELECT * FROM order_items
        LEFT JOIN products ON order_items.product_id = products.id
    </select>

    <select id="getProductById" parameterType="Long" resultType="com.ecommerce.book.entity.Product">
        SELECT * FROM products WHERE id = #{id}
    </select>

</mapper>
  1. 在com.ecommerce.book包下新建一个service包,用于存放业务逻辑代码。
  2. 在service包下新建一个OrderItemService接口,用于定义联合查询的方法。代码如下:
package com.ecommerce.book.service;

import com.ecommerce.book.entity.OrderItem;

public interface OrderItemService {
    List<OrderItem> getOrderItemsWithProduct(); //联合查询方法
}
  1. 在service包下新建一个OrderItemServiceImpl实现类,用于实现联合查询的方法。代码如下:
package com.ecommerce.book.service.impl;

import com.ecommerce.book.entity.OrderItem;
import com.ecommerce.book.mapper.OrderItemMapper;
import com.ecommerce.book.service.OrderItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class OrderItemServiceImpl implements OrderItemService {

    @Autowired
    private OrderItemMapper orderItemMapper;

    @Override
    public List<OrderItem> getOrderItemsWithProduct() {
        return orderItemMapper.getOrderItemsWithProduct();
    }
}
  1. 最后,在需要调用联合查询的地方注入OrderItemService,并调用getOrderItemsWithProduct方法即可
order_items表中有product_id products表中有id我怎么使用mybatis实现两个表联合查询给出我需要新建的文件名以及代码我的工程是comecommercebook

原文地址: https://www.cveoy.top/t/topic/dhoF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录