在我们写接口的时候,分页查询往往是必不可少的,今天主要介绍在SpringBoot开发中,比较好用的一个分页工具 -- pageHelper
引入依赖包
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
注意:这边有个坑,在SpringBoot开发中只能引入上面的包,不能引入下面的,不然分页会不生效。
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.8</version>
</dependency>
代码实现
@RestController
@RequestMapping("/device")
public class DeviceController {
@Autowired
private DeviceService deviceService;
@GetMapping("/list")
public ServerResponse<PageInfo> listForPage(@RequestParam(required = false, defaultValue = "1") Integer pageNo,
@RequestParam(required = false, defaultValue = "25") Integer pageSize,
@RequestParam(required = false) String deviceType) {
// 设置分页参数
PageHelper.startPage(pageNo, pageSize);
// 数据库查询
List<DeviceInfo> deviceInfoList = deviceService.queryDeviceInfoByType(deviceType);
// 对查询结果进行封装
PageInfo<DeviceInfo> pageInfo = new PageInfo(deviceInfoList);
// 对整个查询结果进行封装,封装状态码、消息
return ServerResponse.createBySuccess(pageInfo);
}
}
整个代码实现比较简单
- 调用startPage设置分页参数,这里也指定reasonable和pageSizeZero两个参数
- reasonable:当设置为true时,进行分页合理化,当pageNo<=0的时候,返回第一页的查询结果。
- pageSizeZero:当设置为true的时候,如果pagesize设置为0,就不执行分页,返回全部结果。
- 数据库查询
- 查询结果进行封装,把查询结果分装到pageInfo里面。
结果展示
通过postman测试结果