springboot pagehelper分页查询
时间: 2025-02-13 13:09:02 浏览: 48
### 如何在 Spring Boot 中使用 PageHelper 实现分页查询
#### 添加依赖项
为了能够在 Spring Boot 项目中使用 PageHelper 插件,需要先引入必要的 Maven 或 Gradle 依赖。以下是 Maven 配置中的依赖声明:
```xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.0</version>
</dependency>
```
此操作确保了 PageHelper 能够无缝集成到基于 MyBatis 的 Spring Boot 应用程序中[^2]。
#### 配置 application.properties 文件
接着,在 `application.properties` 文件内添加如下配置来初始化 PageHelper 参数设置:
```properties
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
```
这些属性定义了 MySQL 数据库方言的支持以及其他一些优化选项,有助于提高性能并增强灵活性[^4]。
#### 编写 Service 方法实现分页逻辑
下面是一个简单的例子展示如何利用 PageHelper 进行分页查询。假设有一个名为 `UserMapper` 接口用于访问用户表的数据源,则可以在对应的 service 类里编写类似这样的方法:
```java
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public PageInfo<User> getUsers(int pageNum, int pageSize){
// 开始分页
PageHelper.startPage(pageNum, pageSize);
List<User> userList = userMapper.selectAllUsers();
return new PageInfo<>(userList);
}
}
```
上述代码片段展示了怎样调用 `startPage()` 函数指定当前页面编号 (`pageNum`) 和每页显示记录数 (`pageSize`) 来启动分页机制;之后执行常规的 SQL 查询语句即可获得经过分页后的结果集[^3]。
#### Controller 层接收请求参数与返回响应体
最后一步是在控制器层创建 RESTful API 端点以便客户端可以发送 HTTP 请求获取分页后的数据列表。这里给出一个基本的例子说明这一过程:
```java
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("")
public ResponseEntity<?> getAll(@RequestParam(defaultValue="1") Integer page,
@RequestParam(defaultValue="10") Integer size) {
try{
PageInfo<User> pageInfo = userService.getUsers(page, size);
Map<String,Object> responseMap=new HashMap<>();
responseMap.put("total", pageInfo.getTotal());
responseMap.put("list", pageInfo.getList());
return ResponseEntity.ok(responseMap);
} catch (Exception e){
log.error(e.getMessage(),e);
throw new RuntimeException("Failed to fetch users");
}
}
}
```
这段代码实现了 GET 请求处理器,它接受两个可选路径变量——`page` 表示要加载的具体页码,默认值设为第一页;而 `size` 则指定了单页的最大条目数量,默认情况下最多显示十条记录。当接收到有效输入后,会调用之前定义的服务端业务逻辑完成最终的数据检索工作,并将结果封装成 JSON 响应对象传回给前端应用[^5]。
阅读全文
相关推荐


















