基于spring boot的mysql使用pagehelper实现分页功能

您所在的位置:网站首页 荒野大镖客2哪里有熊 基于spring boot的mysql使用pagehelper实现分页功能

基于spring boot的mysql使用pagehelper实现分页功能

2022-12-21 14:11| 来源: 网络整理| 查看: 265

1.一般分页功能是要自己实现的,也不难,但是有了这插件,一行代码,然后配置一下就可以用了

2.下面讲下pagehelper的用法

maven jar文件

com.github.pagehelper pagehelper-spring-boot-starter 1.1.2 下面这部分可有可无,主要是可以让你进一步了解这个插件的东西

import com.github.pagehelper.Page; import java.io.Serializable; import java.util.Collection; import java.util.List; @SuppressWarnings({"rawtypes", "unchecked"}) public class PageInfo implements Serializable { private static final long serialVersionUID = 1L; //当前页 private int pageNum; //每页的数量 private int pageSize; //总记录数 private long total; //总页数 private int pages; //结果集 private List list; //是否为第一页 private boolean isFirstPage = false; //是否为最后一页 private boolean isLastPage = false; public PageInfo() { } /** * 包装Page对象 * * @param list */ public PageInfo(List list) { if (list instanceof Page) { Page page = (Page) list; this.pageNum = page.getPageNum(); this.pageSize = page.getPageSize(); this.pages = page.getPages(); this.list = page; this.total = page.getTotal(); } else if (list instanceof Collection) { this.pageNum = 1; this.pageSize = list.size(); this.pages = 1; this.list = list; this.total = list.size(); } if (list instanceof Collection) { //判断页面边界 judgePageBoudary(); } } /** * 判定页面边界 */ private void judgePageBoudary() { isFirstPage = pageNum == 1; isLastPage = pageNum == pages; } 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 getTotal() { return total; } public void setTotal(long total) { this.total = total; } public int getPages() { return pages; } public void setPages(int pages) { this.pages = pages; } public List getList() { return list; } public void setList(List list) { this.list = list; } public boolean isIsFirstPage() { return isFirstPage; } public void setIsFirstPage(boolean isFirstPage) { this.isFirstPage = isFirstPage; } public boolean isIsLastPage() { return isLastPage; } public void setIsLastPage(boolean isLastPage) { this.isLastPage = isLastPage; } @Override public String toString() { final StringBuffer sb = new StringBuffer("PageInfo{"); sb.append("pageNum=").append(pageNum); sb.append(", pageSize=").append(pageSize); sb.append(", total=").append(total); sb.append(", pages=").append(pages); sb.append(", list=").append(list); sb.append(", isFirstPage=").append(isFirstPage); sb.append(", isLastPage=").append(isLastPage); sb.append(", navigatepageNums="); sb.append('}'); return sb.toString(); } }至于最关键的是 public List findAll(int pageNo, int pageSize) { PageHelper.startPage(pageNo, pageSize); return userMapper.findAll(); }

findAll自己编写的一个类,PageHelper.startPage(页数,每夜多少显示数量),关键所在。其次userMapper.findALL是mybatis操作数据库的一个方法

Controller(仅供参考)

@Autowired public UserServiceImpl userService;

@RequestMapping (value="/findAll/{No}/{Size}") public String find(@PathVariable(value = "No")int No,@PathVariable(value = "Size")int Size){ List list=userService.findAll(No,Size); System.out.println("list:"+list.toString()); PageInfo pageInfo = new PageInfo(list); System.out.println(JSON.toJSONString(pageInfo)); Iterator i=list.iterator(); String s=""; while(i.hasNext()){ user u=i.next(); s+=u.getName()+" "+u.getAge()+" "; } return s; }我把实现的写在service以及它的实现类impl上,然后注入,这个你们自己编写。

List list=userService.findAll(No,Size); System.out.println("list:"+list.toString());这个输出的时候List里面具体的类是Page,所以你可以用上面编写的PageInfo类进行打印,查看里面结构

最后看下打印的结果

至于怎么实现分页功能,先设置No这个参数为1,Size自己设置,然后前端实现按钮跳转,传过来值是当前页数+1,就ok了



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3