SpringBoot 分页
SpringBoot 使用 PageHelper 进行分页
在pom.xml中添加pagehelper-spring-boot的依赖包
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
配置application.properties
# 分页配置
# 指定数据库,不指定的话会默认自动检测数据库类型
pagehelper.helperDialect=mysql
# 是否启用分页合理化。
# 如果启用,当pagenum<1时,会自动查询第一页的数据,当pagenum>pages时,自动查询最后一页数据;
# 不启用的,以上两种情况都会返回空数据
pagehelper.reasonable=true
# 默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。
pagehelper.supportMethodsArguments=true
# 用于从对象中根据属性名取值,
# 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值,
# 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
#pagehelper.params=count=countSql
分页代码
public PageInfo<Entity> getPageInfoList(int page, int size) {
//启动分页
PageHelper.startPage(page, size);
//使用mybatis的Mapper进行数据查询得到列表,并指定导航导航页码数,来创建PageInfo对象(这里的Entity代指需要查询的实体对象)
PageInfo<Entity> pageInfo = new PageInfo<>(entityMapper.getAllEntity(), 5);
return pageInfo;
}
controller层的代码
//没有输入页码的情况
@GetMapping(value = {"/{page:[0-9]*}","/"})
public String index(@PathVariable(required = false) Integer page, Model model) {
page = null == page ? 1 : page;
//通过service得到pageInfo
PageInfo<QuestionDTO> pageInfo = questionService.getquestionDTOPageInfo(page, size);
//传入model*前台使用
model.addAttribute("pageInfo", pageInfo);
return "index";
}