MyBatis 联合查询:order_items 和 products 表关联
是的,您需要创建一个新的 mapper.xml 文件来实现两个表的联合查询。您可以使用 MyBatis 的关联查询功能来实现这个目标。以下是一个示例:
- 在 mapper.xml 文件中,定义一个查询语句,使用关联查询来联合两个表:
<select id="findOrderItemsWithProducts" resultMap="OrderItemWithProductResult">
SELECT oi.*, p.*
FROM order_items oi
INNER JOIN products p ON oi.product_id = p.id
</select>
- 在 mapper.xml 文件中,定义一个 resultMap,用于映射查询结果:
<resultMap id="OrderItemWithProductResult" type="OrderItemWithProduct">
<id column="id" property="id" />
<result column="quantity" property="quantity" />
<result column="price" property="price" />
<result column="product_id" property="product.id" />
<result column="name" property="product.name" />
<result column="description" property="product.description" />
</resultMap>
- 创建一个 Java 类来表示查询结果:
public class OrderItemWithProduct {
private Long id;
private Integer quantity;
private Double price;
private Product product;
// getters and setters
}
- 创建一个 Product 类,用于保存 products 表中的数据:
public class Product {
private Long id;
private String name;
private String description;
// getters and setters
}
- 调用 mapper 中的查询方法:
List<OrderItemWithProduct> orderItems = orderItemMapper.findOrderItemsWithProducts();
原文地址: https://www.cveoy.top/t/topic/nDH2 著作权归作者所有。请勿转载和采集!