SpringBoot 分页

SpringBoot 分页

SpringBoot 使用 PageHelper 进行分页

在pom.xml中添加pagehelper-spring-boot的依赖包

<dependency>
    <groupId>com.github.pagehelpergroupId>
    <artifactId>pagehelper-spring-boot-starterartifactId>
    <version>1.2.13version>
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";
}

你可能感兴趣的:(spring,boot,java,spring)