springboot使用pagehelper分页插件 作者:马育民 • 2020-12-23 14:33 • 阅读:10132 # 添加依赖 修改pom.xml ``` com.github.pagehelper pagehelper 5.1.9 ``` # 配置 根据官网介绍,有2种方式: 1. 配置在`spring.xml`中 2. 配置在`mybatis.xml`中 这里只介绍`mybatis.xml`配置方法 ``` ``` # 使用 ### mapper.xml 与普通查询sql相同,**不需要增加额外内容** ``` select id,img,name,descrip,price from goods and name like "%"#{name}"%" order by update_time desc,name,id ``` ### mapper接口 与普通接口相同,**不需要改动** ``` public List mgrQueryList(@Param("name")String name); ``` ### json封装类 JsonResult: ``` @JsonInclude(JsonInclude.Include.NON_NULL) public class JsonResult { /* 0:成功,正确 非0表示错误 100:用户名、密码不正确 101:密码错误 102:用户名不存在 */ private int code; /* 提示信息 */ private String msg; private T data; public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return data; } public void setData(T data) { this.data = data; } } ``` JsonResultPage: ``` public class JsonResultPage extends JsonResult{ private Integer pageNum;//当前页数 private Integer pageSize;//每页显示记录数 private Integer pages;//总共页数 private Long total;//总共记录数 public Integer getPageNum() { return pageNum; } public void setPageNum(Integer pageNum) { this.pageNum = pageNum; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getPages() { return pages; } public void setPages(Integer pages) { this.pages = pages; } public Long getTotal() { return total; } public void setTotal(Long total) { this.total = total; } } ``` ### service 有小改动,这里只介绍一种,详见:[pagehelper 分页实现-PageHelper.startPage方式](https://www.malaoshi.top/show_1IX2q3r52GIC.html "pagehelper 分页实现-PageHelper.startPage方式") ``` public PageInfo mgrQueryList(String name,String startDate,String endDate,Integer status,int pageNum,int pageSize) throws Exception{ //pageNum当前页数,pageSize每页显示记录数 //注意:不能将 page 对象返回给前端,会得不到 pageNum、pageSize 等信息 Page page=PageHelper.startPage(pageNum, pageSize, true); List list=dao.mgrQueryList(name, startDate, endDate,status); //需要将结果封装成PageInfo对象,才能得到 pageNum、pageSize、isFirstPage 等信息 PageInfo pageInfo=new PageInfo(list,page.getPages()); return pageInfo; } ``` ### controller 有小改动 ``` @RequestMapping("/list") public JsonResult list(String name,String pageNum,String pageSize){ JsonResultPage jr=new JsonResultPage(); int pageNumInt=0; int pageSizeInt=10; if(pageNum!=null && !"".equals(pageNum)) { pageNumInt=Integer.parseInt(pageNum); } if(pageSize!=null && !"".equals(pageSize)) { pageSizeInt=Integer.parseInt(pageSize); } try { PageInfo page=srv.mgrQueryList(name, startDate, endDate,status, pageNumInt,pageSizeInt); jr.setCode(0); jr.setData(page.getList()); jr.setPageNum(pageNumInt);//当前页数 jr.setPageSize(pageSizeInt);//每页显示的记录数 jr.setPages(page.getPages());//总共的页数 jr.setTotal(page.getTotal());//总共记录数 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); jr.setCode(100000); jr.setMsg("发生错误"); } return jr; } ``` 原文出处:http://malaoshi.top/show_1IXGyvQ6l0x.html