mybatisplus多表查询
时间: 2023-09-02 21:05:43 浏览: 82
Mybatis-Plus 是 Mybatis 的增强工具,在进行多表查询时,可以使用 Mybatis-Plus 提供的 Wrapper 来实现多表查询,以下是一个示例:
假设有两张表:user 和 order,user 表中有 id 和 name 两个字段,order 表中有 id 和 user_id 两个字段,user_id 与 user 表中的 id 相关联。
1. 定义实体类
```java
public class User {
private Long id;
private String name;
// 省略 getter 和 setter
}
public class Order {
private Long id;
private Long userId;
// 省略 getter 和 setter
}
```
2. 定义 Mapper 接口
```java
public interface UserMapper extends BaseMapper<User> {
}
public interface OrderMapper extends BaseMapper<Order> {
}
```
3. 编写多表查询代码
```java
public List<User> selectUserAndOrderList() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select("user.id", "user.name", "order.id as orderId")
.eq("user.id", "order.user_id");
return userMapper.selectList(queryWrapper);
}
```
以上代码中,我们使用了 QueryWrapper 来构造查询条件,通过 select 方法指定查询的字段,使用 eq 方法指定关联条件,最后使用 selectList 方法执行查询。
需要注意的是,如果出现了表名相同的情况,可以使用 as 方法来指定别名,如上面的例子中的 order.id as orderId。
阅读全文