springboot pagehelper分页查询
如何在 Spring Boot 中使用 PageHelper 实现分页查询
添加依赖项
为了能够在 Spring Boot 项目中使用 PageHelper 插件,需要先引入必要的 Maven 或 Gradle 依赖。以下是 Maven 配置中的依赖声明:
<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 参数设置:
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
这些属性定义了 MySQL 数据库方言的支持以及其他一些优化选项,有助于提高性能并增强灵活性[^4]。
编写 Service 方法实现分页逻辑
下面是一个简单的例子展示如何利用 PageHelper 进行分页查询。假设有一个名为 UserMapper
接口用于访问用户表的数据源,则可以在对应的 service 类里编写类似这样的方法:
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 请求获取分页后的数据列表。这里给出一个基本的例子说明这一过程:
@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]。
相关推荐


















