Mybatis的LambdaqueryWrapper怎么多表联合查询
时间: 2023-10-31 11:59:24 浏览: 76
Mybatis的LambdaqueryWrapper可以通过调用LambdaQueryWrapper的join方法进行多表联合查询。
首先,需要定义多个实体类来表示需要联合查询的多个表,例如:
```java
public class User {
private Long id;
private String name;
private Integer age;
// 省略getter/setter方法
}
public class Order {
private Long id;
private Long userId;
private BigDecimal totalPrice;
// 省略getter/setter方法
}
```
然后,需要在Mapper.xml文件中定义多表联合查询的SQL语句,例如:
```xml
<select id="selectUserOrderList" resultMap="userOrderMap">
SELECT u.*, o.total_price
FROM user u
LEFT JOIN order o ON u.id = o.user_id
WHERE u.name LIKE #{name}
</select>
```
最后,在Java代码中使用LambdaqueryWrapper的join方法进行多表联合查询,例如:
```java
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(User::getName, "张三")
.select(User::getId, User::getName, User::getAge, Order::getTotalPrice)
.leftJoin(Order.class, Order::getUserId, User::getId);
List<User> userList = userMapper.selectList(queryWrapper);
```
以上代码中,我们使用LambdaqueryWrapper的leftJoin方法来实现多表联合查询,其中第一个参数是关联表的实体类,第二个参数是主表的关联字段,第三个参数是关联表的关联字段。
注意,需要在LambdaqueryWrapper的select方法中指定需要查询的字段,否则会查询出所有字段。同时,需要在Mapper.xml文件中使用resultMap来指定查询结果的映射关系。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)