Spring Boot 使用 pagehelper 分页插件

添加 pagehelper 依赖

pom.xml 中添加:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.10</version>
</dependency>

修改配置文件

application.properties 中添加以下配置:

#pagehelper分页插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

使用示例

简单分页

@GetMapping("/users")
public List<User> lists(@RequestParam(defaultValue = "1") int pageNo, @RequestParam(defaultValue = "10") int pageSize) {
    PageHelper.startPage(pageNo,pageSize); // 分页主要代码
    return userService.getUsers();
}

返回分页信息

上面我们返回的只是数据,而总页数、当前页数、每页条数等分页相关的信息并没有返回。

我们对servicemapper里的方法的返回值做一下修改,将List<User>改为Page<User>,Pagecom.github.pagehelper包里的类,它是java.util.ArrayList的子类。

com.github.pagehelper.PageInfo类封装Page<User>数据。

@GetMapping("/users")
public PageInfo<User> lists(@RequestParam(defaultValue = "1") int pageNo,@RequestParam(defaultValue = "10") int pageSize) {
    PageHelper.startPage(pageNo,pageSize);
    PageInfo<User> pageInfo = new PageInfo<>(userService.getUsers());
    return pageInfo;
}

这时访问就会返回带分页信息的结果了。
pagehelper

PageInfo 属性表

如果我们需要分页信息的某一个时,可以通过 PageInfo 包含的属性get出来。

  • pageNum:当前页
  • pageSize:每页的数量
  • size:当前页的数量
  • startRow:当前页面第一个元素在数据库中的行号
  • endRow:当前页面最后一个元素在数据库中的行号
  • total:总记录数
  • pages:总页数
  • list:结果集
  • firstPage:第一页
  • prePage:前一页
  • isFirstPage:是否为第一页
  • isLastPage:是否为最后一页
  • hasPreviousPage:是否有前一页
  • hasNextPage:是否有下一页
  • navigatePages:导航页码数
  • navigatepageNums:所有导航页号

参考

https://blog.csdn.net/gnail_oug/article/details/80229542


 上一篇
用静态工厂方法代替构造器 用静态工厂方法代替构造器
前言对于类而言,为了让客户端获取它自身的一个实例,最传统的方法就是提供一个公有的构造器。还有一种方法,类可以提供一个公有的静态工厂方法,它只是一个返回类的实例的静态方法。 下面是一个来自Boolean的简单示例,这个方法将boolean基本
2019-05-13
下一篇 
SpringBoot 中使用 Shiro SpringBoot 中使用 Shiro
目标利用 Spring Boot 与 Shiro 实现安全认证和授权 导入依赖依赖 spring-boot-starter-web <properties> <project.build.sourceEncoding>U
2019-05-07
  目录