mybatisplus多表关联查询代码
时间: 2023-07-09 21:52:05 浏览: 68
MybatisPlus多表关联查询可以通过使用Wrapper或者自定义SQL语句来实现。这里给出使用Wrapper的示例代码:
假设我们有两个实体类User和Order,User表中有一个userId字段,Order表中有一个userId字段,我们需要根据userId查询该用户的所有订单信息,可以使用以下代码:
```java
// 创建Wrapper对象
QueryWrapper<Order> wrapper = new QueryWrapper<>();
// 设置查询条件
wrapper.eq("user_id", userId);
// 执行查询
List<Order> orders = orderMapper.selectList(wrapper);
```
如果我们需要查询用户信息和订单信息,可以使用以下代码:
```java
// 创建Wrapper对象
QueryWrapper<User> wrapper = new QueryWrapper<>();
// 设置查询条件
wrapper.eq("user_id", userId);
// 执行查询
User user = userMapper.selectOne(wrapper);
// 创建Wrapper对象
QueryWrapper<Order> wrapper2 = new QueryWrapper<>();
// 设置查询条件
wrapper2.eq("user_id", userId);
// 执行查询
List<Order> orders = orderMapper.selectList(wrapper2);
```
以上代码分别查询了User和Order表,如果需要一次性查询两张表,可以使用以下代码:
```java
// 创建Wrapper对象
QueryWrapper<User> wrapper = new QueryWrapper<>();
// 设置查询条件
wrapper.eq("user_id", userId);
// 执行查询
User user = userMapper.selectOne(wrapper);
// 创建Wrapper对象
QueryWrapper<Order> wrapper2 = new QueryWrapper<>();
// 设置查询条件
wrapper2.eq("user_id", userId);
// 执行查询
List<Order> orders = orderMapper.selectList(wrapper2);
// 将查询结果封装到Map中
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("user", user);
resultMap.put("orders", orders);
```
以上代码查询了User和Order表,并将查询结果封装到了Map中返回。
阅读全文