mybatisplus如何进行多表关联查询?
时间: 2023-12-26 11:27:19 浏览: 77
MyBatis-Plus提供了多种方式来实现多表关联查询,以下是其中两种常用的方法:
方法一:使用@TableName注解和@JoinTable注解
```java
// 创建一个VO类,用于接收多表关联查询的结果
@Data
public class ProductVo {
private Integer category;
private Integer count;
private String description;
private Integer userId;
private String userName;
}
// 在对应的Mapper接口中定义多表关联查询的方法
@Select("SELECT p.category, p.count, p.description, u.id AS userId, u.name AS userName " +
"FROM product p " +
"LEFT JOIN user u ON p.user_id = u.id " +
"WHERE p.id = #{productId}")
ProductVo selectProductVoById(@Param("productId") Integer productId);
```
方法二:使用Wrapper对象进行多表关联查询
```java
// 在对应的Mapper接口中定义多表关联查询的方法
@Select("SELECT p.category, p.count, p.description, u.id AS userId, u.name AS userName " +
"FROM product p " +
"LEFT JOIN user u ON p.user_id = u.id " +
"WHERE p.id = #{productId}")
@Results({
@Result(column = "category", property = "category"),
@Result(column = "count", property = "count"),
@Result(column = "description", property = "description"),
@Result(column = "userId", property = "userId"),
@Result(column = "userName", property = "userName")
})
ProductVo selectProductVoById(@Param("productId") Integer productId);
```
以上两种方法都可以实现多表关联查询,根据具体的业务需求选择适合的方法即可。
阅读全文