mybatis puls 多表连接查询如何查
时间: 2024-05-10 09:14:16 浏览: 138
MyBatis-Plus 支持多表连接查询,可以通过注解或者 XML 配置文件来实现。下面是一个通过注解实现多表连接查询的示例:
```java
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
private String username;
private String password;
}
@TableName("order")
public class Order {
@TableId(type = IdType.AUTO)
private Long id;
private Long userId;
private BigDecimal amount;
}
@Mapper
public interface UserOrderMapper extends BaseMapper<User> {
@Select("SELECT u.*, o.amount FROM user u LEFT JOIN order o ON u.id = o.user_id")
List<UserOrderVO> selectUserOrder();
}
public class UserOrderVO {
private Long id;
private String username;
private BigDecimal amount;
// getter and setter
}
```
上述代码中,`User` 和 `Order` 是两个实体类,分别对应数据库中的 `user` 和 `order` 表。`UserOrderMapper` 是一个 DAO 接口,用于定义多表连接查询的 SQL 语句。`UserOrderVO` 是一个视图对象,用于封装查询结果。
`@TableName` 注解用于指定实体类对应的数据库表名,`@TableId` 注解用于指定实体类的主键属性。`@Mapper` 注解用于标识这是一个 DAO 接口。
在 `UserOrderMapper` 接口中,使用 `@Select` 注解定义了一个 SQL 语句,通过 `LEFT JOIN` 实现了 `user` 表和 `order` 表的多表连接查询。查询结果通过 `UserOrderVO` 类型的 List 返回。
注意,上述示例中使用了 MyBatis-Plus 的基础接口 `BaseMapper`,需要在配置文件中配置 `MapperScannerConfigurer` 扫描器才能生效。
除了注解,MyBatis-Plus 还支持使用 XML 配置文件实现多表连接查询,具体使用方法可以参考官方文档。
阅读全文