mybatis plus多表
时间: 2023-09-18 15:10:53 浏览: 82
多表查询在 MyBatis Plus 中可以使用 Wrapper 来实现。Wrapper 是一种条件构造器,可以用于拼接 SQL 语句的查询条件。
首先,需要在实体类中定义关联的字段,例如:
```java
public class User {
private Long id;
private String name;
private Long roleId;
// ...
}
public class Role {
private Long id;
private String roleName;
// ...
}
```
然后,在 Mapper 接口中定义多表查询的方法,例如:
```java
@Select("SELECT u.*, r.role_name FROM user u LEFT JOIN role r ON u.role_id = r.id WHERE u.id = #{id}")
User selectUserWithRoleById(@Param("id") Long id);
```
接下来,可以使用 Wrapper 来构造多表查询的条件,例如:
```java
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("u.id", id)
.leftJoin("role r", "u.role_id = r.id")
.select("u.*, r.role_name");
User user = userMapper.selectOne(wrapper);
```
上述代码中,使用 QueryWrapper 构造了一个查询条件,eq 方法用于设置等值条件,leftJoin 方法用于设置左连接,select 方法用于指定查询的字段。
除了 Wrapper,MyBatis Plus 还提供了 LambdaQueryWrapper 和 UpdateWrapper 等更加方便的条件构造器,可以根据实际需求选择使用。
通过上述方式,就可以实现 MyBatis Plus 的多表查询功能。
阅读全文