springboot集成pagehelper一对多分页
时间: 2023-09-14 15:03:07 浏览: 122
Springboot整合pagehelper分页功能
5星 · 资源好评率100%
对Spring Boot集成PageHelper实现一对多分页,可以按照以下步骤进行操作:
1. 首先,在pom.xml文件中添加PageHelper依赖:
```xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
```
2. 在application.properties或application.yml文件中配置PageHelper的属性:
```properties
# MySQL数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
# PageHelper配置
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql
```
3. 创建一个包含一对多关系的实体类。例如,如果存在一个"User"实体类,每个用户可以有多个订单 "Order",那么可以这样定义实体类:
```java
public class User {
private Long id;
private String name;
private List<Order> orders;
// 省略getter和setter方法
}
public class Order {
private Long id;
private String orderName;
// 省略getter和setter方法
}
```
4. 创建Mapper接口和对应的SQL映射文件。在Mapper接口中声明需要的查询方法:
```java
@Mapper
public interface UserMapper {
List<User> getUsersWithOrders();
}
```
在对应的SQL映射文件中编写相应的查询语句,关联查询用户和订单信息。
5. 在Service层中调用Mapper接口中的方法:
```java
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public PageInfo<User> getUsersWithOrders(int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> users = userMapper.getUsersWithOrders();
return new PageInfo<>(users);
}
}
```
6. 在Controller层中调用Service层的方法,并将结果返回:
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public PageInfo<User> getUsers(@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
return userService.getUsersWithOrders(pageNum, pageSize);
}
}
```
这样,通过访问"/users"接口,即可实现一对多关系的分页查询。
阅读全文