QueryWrapper怎实现两张表的关联查询
时间: 2023-07-20 21:34:36 浏览: 285
QueryWrapper 是 MyBatis-Plus 提供的一个查询条件构造器,可以方便地拼接 SQL 查询条件,从而实现复杂的数据查询功能。如果需要实现两张表的关联查询,可以通过以下步骤:
1. 在实体类中定义对应的属性,用于映射关联表的数据。比如,如果需要查询用户表和订单表的关联数据,可以在用户实体类中定义一个 List<Order> orders 属性,用于存储该用户的所有订单数据。
2. 在查询时,使用 QueryWrapper 的 join 方法来连接两张表,指定连接条件和查询字段。比如,可以使用如下代码实现用户表和订单表的关联查询:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("user_id", userId)
.select("user_id", "user_name", "order_id", "order_name")
.leftJoin(Order.class, "order", "user.user_id = order.user_id");
List<User> users = userMapper.selectList(wrapper);
```
其中,eq 方法指定查询条件,select 方法指定要查询的字段,leftJoin 方法指定左连接查询,并指定连接条件和查询字段。这样就可以查询出指定用户的所有订单数据,并将其存储在用户实体类的 orders 属性中。
需要注意的是,join 方法中的第一个参数是关联表的实体类,第二个参数是关联表的别名,第三个参数是连接条件。连接条件中的 user.user_id 和 order.user_id 分别表示用户表和订单表的 user_id 字段。
阅读全文