SpringBoot整合PageHelper 您所在的位置:网站首页 pagehelper使用后clean SpringBoot整合PageHelper

SpringBoot整合PageHelper

2022-12-26 12:39| 来源: 网络整理| 查看: 265

SpringBoot整合PageHelper(分页插件) PageHelper分页插件

可以在正常的查询业务中,只需要加上一行代码就可以实现分页的数据的封装处理 一:实现原理 PageHelper方法使用了静态的ThreadLocal参数,分页参数和线程是绑定的。内部流程是ThreadLocal中设置了分页参数(pageIndex,pageSize),之后在查询执行的时候,获取当前线程中的分页参数,执行查询的时候通过拦截器在sql语句中添加分页参数,之后实现分页查询,查询结束后在finally语句中清除ThreadLocal中的查询参数 二:使用方法

在查询所有的service中调用PageHelper方法:PageHelper.startPage(pageNum,pageSize) MyBatis查询方法

注意:只要保证在PageHelper方法调用后紧跟Mybatis查询方法,这就是安全的。因为PageHelper在finally代码段中自动清除了ThreadLocl存储的对象

SpringBoot整合PageHelper 引入PageHelper依赖 com.github.pagehelper pagehelper-spring-boot-starter 1.2.5 在查询所有的service方法中写 PageHelper.startPage(pageNum,pageSize); @Override public List AllfindPage(Integer pageNum, Integer pageSize) { //实现分页的代码 Page page=PageHelper.startPage(pageNum,pageSize); //执行查询所有的方法 List userList= userDao.selectALl(); //将返回的数据封装到PageInfo对象中方法一:(页码 页大小 当前页数据 页总数 总记录数) PageInfo pi=new PageInfo(userList); //方法二: System.out.println("当前页:"+page.getPageNum()); System.out.println("总页数:"+page.getPages()); System.out.println("页大小:"+page.getPageSize()); System.out.println("总记录数:"+page.getTotal()); System.out.println("当前页数据(查询的集合):"+page.getResult()); //将返回的数据存入自定义的Page对象中(需要自己创建Page实体) //将返回的数据存入传统的PageUtil工具类中 PageUtil page1=new PageUtil(page.getTotal(),page.getPageSize(),page.getPages(),page.getPageNum(),page.getResult()); return userList; }

分页的工具类

package com.zuxia.util; import com.zuxia.entity.User; import java.util.List; public class PageUtil { //一共有多少条数据 private Integer datacount; //每页显示多少条数据 private Integer showdata; //一共分多少页 private Integer pagecount; //当前页是第几页 private Integer pageindex; //当前页面显示的集合信息 private List list; public Integer getPagecount() { return this.datacount%this.showdata==0?this.datacount/this.showdata:this.datacount/this.showdata+1; } public void setPagecount(Integer pagecount) { this.pagecount = pagecount; } public PageUtil(long total, int pageSize, int pages, int pageNum, List result) { } public Integer getDatacount() { return datacount; } public void setDatacount(Integer datacount) { this.datacount = datacount; } public Integer getShowdata() { return showdata; } public void setShowdata(Integer showdata) { this.showdata = showdata; } public Integer getPageindex() { return pageindex; } public void setPageindex(Integer pageindex) { this.pageindex = pageindex; } public List getList() { return list; } public void setList(List list) { this.list = list; } }

PageInfo和Page对象的区别:

两者都能获取数据 Page是一个ArrayList ;PageInfo是一个对象,能获取到的数据比Page多


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有