mybatisplus 连表查询
时间: 2023-06-28 22:05:41 浏览: 104
MyBatis-Plus 是一款 MyBatis 的增强工具,在 MyBatis 的基础上增加了许多实用的功能,其中包括了方便的连表查询功能。
MyBatis-Plus 提供了多种方式实现连表查询,以下是其中两种方式的示例:
1. 使用 @TableName 注解指定表名,使用 @TableField 注解指定字段名,然后使用 @TableJoin 注解指定连接条件。
例如,要查询用户信息和订单信息,可以定义两个实体类 User 和 Order,然后使用 @TableName 和 @TableField 注解指定表名和字段名,最后使用 @TableJoin 注解指定连接条件:
```java
@Data
@TableName("user")
public class User {
@TableField("id")
private Long id;
@TableField("name")
private String name;
@TableJoin(value = "order", type = JoinType.LEFT_JOIN, joinField = "id", refField = "user_id")
private List<Order> orders;
}
@Data
@TableName("order")
public class Order {
@TableField("id")
private Long id;
@TableField("user_id")
private Long userId;
@TableField("order_no")
private String orderNo;
}
```
然后使用 MyBatis-Plus 提供的 selectList 方法进行查询:
```java
List<User> userList = userMapper.selectList(null);
```
2. 使用 MyBatis-Plus 提供的 Wrapper 条件构造器进行连表查询。
例如,要查询用户信息和订单信息,可以使用 MyBatis-Plus 提供的 Wrapper 条件构造器构建查询条件:
```java
QueryWrapper<User> wrapper = new QueryWrapper<User>()
.eq("user.id", 1L)
.leftJoin("order", "order.user_id = user.id");
List<Map<String, Object>> list = userMapper.selectMaps(wrapper);
```
以上是 MyBatis-Plus 连表查询的两种方式,具体使用哪种方式可以根据实际情况进行选择。
阅读全文