mybatisplus wrapper.join
时间: 2025-01-08 17:37:58 浏览: 5
### MyBatisPlus Wrapper Join 方法详解
MyBatis-Plus 的 `Wrapper` 类提供了多种方式来构建 SQL 查询语句,其中 `MPJLambdaWrapper` 和 `MPJQueryWrapper` 支持多表联结查询的功能[^1]。
#### 创建 MPJLambdaWrapper 实现 Join 操作
为了实现多表连接查询,可以创建一个 `MPJLambdaWrapper` 对象并调用其 `join` 或者其他关联方法:
```java
import com.baomidou.mybatisplus.extension.conditions.query.LambdaJoinWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
// 构建 Lambda 形式的 Join 条件
LambdaJoinWrapper<User> wrapper = Wrappers.<User>lambdaJoin()
.select(User::getId, User::getName) // 选择字段
.eq(User::getAge, 20) // 添加条件
.leftJoin(Department.class, Department::getId, User::getDeptId); // 左外连接部门表
```
上述代码展示了如何通过 `LambdaJoinWrapper` 执行左外连接两个实体之间的关系,并设置相应的过滤条件。
#### 使用 MPJQueryWrapper 进行更复杂的 Join 操作
对于更加灵活的场景,则可选用 `MPJQueryWrapper`:
```java
import com.baomidou.mybatisplus.extension.conditions.update.QueryChainWrappers;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
// 初始化 QueryWrapper 并指定主表
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("u.id", "u.name", "d.dept_name");
// 调用 join 方法完成与其他表的关系定义
queryWrapper.join("LEFT JOIN department d ON u.dept_id=d.id");
```
这段代码说明了怎样利用标准字符串形式表达式来进行自定义的多表联合查询。
阅读全文