mybatisplus实现两表联查
时间: 2024-09-07 18:04:20 浏览: 40
MyBatisPlus 是基于 MyBatis 的一个优秀的 ORM 框架增强工具,它简化了数据持久层的操作。对于两表联查(也称为关联查询),在 MyBatisPlus 中通常通过一对多(ManyToOne)、一对一(OneToOne)、多对多(ManyToMany)等关联关系来实现。
例如,假设你有两个实体 User 和 Address,User 对象有一个 Address 属性表示用户地址,你可以这样做:
```java
// 定义 User 实体
@Table("user")
public class User {
@Id
private Long id;
private String name;
// 简化关联映射,@RelatedSelect 用于指定获取 Address 对象的 SQL 查询
@Related select = "SELECT * FROM address WHERE user_id = #{id}"
private Address address;
// 其他属性...
}
// 定义 Address 实体
@Table("address")
public class Address {
@Id
private Long id;
private String detail;
// 省略 @OneToOne 或 @ManyToMany 注解
//...
}
// 查询 User 时自动包含 Address 数据
List<User> users = userMapper.selectList(null); // 使用 QueryWrapper 进行条件查询时,也需要加入 address 条件
```
在这样的设置下,当你查询 User 列表时,每个 User 对象都会携带对应的 Address 对象信息。如果你需要更复杂的联查,可以考虑使用动态 SQL 或者编写自定义查询方法。
阅读全文