1.导入jar包
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.4</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
<version>1.2.10</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
<exclusions>
<exclusion>
<artifactId>pagehelper</artifactId>
<groupId>com.github.pagehelper</groupId>
</exclusion>
</exclusions>
</dependency>
2.yml中的配置

pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql
3.封装PageRequest
package com.ccc.demoboot.commons;
/**
* 分页请求
*/
public class PageRequest {
/**
* 当前页码
*/
private int pageNum;
/**
* 每页数量
*/
private int pageSize;
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
4.封装PageUtils
package com.ccc.demoboot.commons;
import com.github.pagehelper.PageInfo;
public class PageUtils {
/**
* 将分页信息封装到统一的接口
* @return
*/
public static PageResult getPageResult(PageInfo<?> pageInfo) {
PageResult pageResult = new PageResult();
pageResult.setPageNum(pageInfo.getPageNum());
pageResult.setPageSize(pageInfo.getPageSize());
pageResult.setTotalSize(pageInfo.getTotal());
pageResult.setTotalPages(pageInfo.getPages());
pageResult.setContent(pageInfo.getList());
return pageResult;
}
}
5.封装分页返回的结果PageResult
package com.ccc.demoboot.commons;
import java.util.List;
/**
* 分页结果类
*/
public class PageResult {
/**
* 当前页码
*/
private int pageNum;
/**
* 每页数量
*/
private int pageSize;
/**
* 记录总数
*/
private long totalSize;
/**
* 页码总数
*/
private int totalPages;
/**
* 数据模型
*/
private List<?> content;
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public long getTotalSize() {
return totalSize;
}
public void setTotalSize(long totalSize) {
this.totalSize = totalSize;
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public List<?> getContent() {
return content;
}
public void setContent(List<?> content) {
this.content = content;
}
}
6.controller层的实现
注意:以下四句话必须放在查询总数之前,放在逻辑处理之前,不然分页将不起作用

package com.ccc.demoboot.controller;
import com.ccc.demoboot.commons.*;
import com.ccc.demoboot.domain.*;
import com.ccc.demoboot.response.ResultModel;
import com.ccc.demoboot.service.*;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
public class pagecs {
@Autowired
private RiskUserService riskUserService;
@RequestMapping(value = "getuser11")
public ResultModel addProject(@RequestBody Map<String, Object> map) {
PageRequest pageRequest=new PageRequest();
pageRequest.setPageSize(Integer.parseInt(map.get("pageSize").toString()));
pageRequest.setPageNum(Integer.parseInt(map.get("pageNum").toString()));
PageHelper.startPage(pageRequest.getPageNum(), pageRequest.getPageSize());
List<RiskUser> riskUserList=riskUserService.getUserByCompanyId(17);
PageResult pageResult= PageUtils.getPageResult(new PageInfo<>(riskUserList));
return ResultModel.successModel("查询成功",pageResult);
}
}
附加内容:PageInfo属性表
当前页 private int pageNum; 每页的数量 private int pageSize; 当前页的数量 private int size; //由于startRow和endRow不常用,这里说个具体的用法 //可以在页面中"显示startRow到endRow 共size条数据" 当前页面第一个元素在数据库中的行号 private int startRow; 当前页面最后一个元素在数据库中的行号 private int endRow; 总记录数 private long total; 总页数 private int pages; 结果集 private List<T> list; 第一页 private int firstPage; 前一页 private int prePage; 是否为第一页 private boolean isFirstPage = false; 是否为最后一页 private boolean isLastPage = false; 是否有前一页 private boolean hasPreviousPage = false; 是否有下一页 private boolean hasNextPage = false; 导航页码数 private int navigatePages; 所有导航页号 private int[] navigatepageNums; 后台分页
