写一个mybatisplus实现多表连接的java写法
时间: 2023-05-22 16:05:16 浏览: 138
当使用 MyBatis-Plus 进行多表连接时,可以借助 `Wrapper` 类通过创建条件构造器来实现。以下是一个示例代码段:
```java
QueryWrapper<User> userWrapper = new QueryWrapper<>();
userWrapper.eq("status", 1);
QueryWrapper<Order> orderWrapper = new QueryWrapper<>();
orderWrapper.eq("status", 2);
List<Map<String, Object>> results = userMapper.selectMaps(
new LambdaQueryWrapper<User>()
.inSql(User::getId, "SELECT user_id FROM order WHERE status = 2")
.apply("status = {0}", 1)
.nested(w -> w.select("*").from("user").where(userWrapper))
.last("limit 1")
);
```
在这个例子中,我们首先创建了两个条件构造器 `userWrapper` 和 `orderWrapper`,然后使用 `LambdaQueryWrapper` 来进行多表连接的查询。在这个查询中,我们使用了 `inSql` 方法来指定子查询,并使用 `apply` 方法添加动态 SQL 语句,然后使用 `nested` 方法添加另一个查询条件。最后,我们使用 `last` 方法添加固定语句,执行查询并将结果保存到 `results` 变量中。
这只是一个简单的示例,MyBatis-Plus 还提供了更多的条件构造器和查询方法,可以根据实际需求进行选择。
阅读全文