springboot+mybatis分页插件pageHelper的配置与使用
来源:互联网 发布:if you中文网络歌手 编辑:程序博客网 时间:2024/06/05 11:59
1、在pom文件里面加入pageHelper分页jar包依赖:
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.2.1</version></dependency>2、在mybatis配置文件中加入pageHelper分页插件://配置分页插件,详情请查阅官方文档PageHelper pageHelper = new PageHelper();Properties properties = new Properties();properties.setProperty("pageSizeZero", "true");//分页尺寸为0时查询所有纪录不再执行分页properties.setProperty("reasonable", "true");//页码<=0 查询第一页,页码>=总页数查询最后一页properties.setProperty("supportMethodsArguments", "true");//支持通过 Mapper 接口参数来传递分页参数pageHelper.setProperties(properties);//添加插件sqlSessionFactoryBean.setPlugins(new Interceptor[]{pageHelper});
3、业务层代码:
//pageHelper组件进行分页Page<CloudProductBO> page = PageHelper.offsetPage(pageNo, pageSize);cloudProductDao.queryProductByCondition(param);List<CloudProductBO> result = page.getResult();PageInfo pageInfo = new PageInfo(result);return pageInfo;pageHelper类下面的SQL语句进行自动分页,page.getResult()的结果就是分页查询的结果,pageInfo是分页组件,直接返还给前台,里面有分页插件,下面就是pageInfo类。
public class PageInfo<T> implements Serializable { private static final long serialVersionUID = 1L; private int pageNum; private int pageSize; private int size; private String orderBy; private int startRow; private int endRow; private long total; private int pages; private List<T> list; private int prePage; private int nextPage; private boolean isFirstPage; private boolean isLastPage; private boolean hasPreviousPage; private boolean hasNextPage; private int navigatePages; private int[] navigatepageNums; private int navigateFirstPage; private int navigateLastPage; public PageInfo() { this.isFirstPage = false; this.isLastPage = false; this.hasPreviousPage = false; this.hasNextPage = false; } public PageInfo(List<T> list) { this(list, 8); } public PageInfo(List<T> list, int navigatePages) { this.isFirstPage = false; this.isLastPage = false; this.hasPreviousPage = false; this.hasNextPage = false; if(list instanceof Page) { Page page = (Page)list; this.pageNum = page.getPageNum(); this.pageSize = page.getPageSize(); this.orderBy = page.getOrderBy(); this.pages = page.getPages(); this.list = page; this.size = page.size(); this.total = page.getTotal(); if(this.size == 0) { this.startRow = 0; this.endRow = 0; } else { this.startRow = page.getStartRow() + 1; this.endRow = this.startRow - 1 + this.size; } } else if(list instanceof Collection) { this.pageNum = 1; this.pageSize = list.size(); this.pages = 1; this.list = list; this.size = list.size(); this.total = (long)list.size(); this.startRow = 0; this.endRow = list.size() > 0?list.size() - 1:0; } if(list instanceof Collection) { this.navigatePages = navigatePages; this.calcNavigatepageNums(); this.calcPage(); this.judgePageBoudary(); } } private void calcNavigatepageNums() { int startNum; if(this.pages <= this.navigatePages) { this.navigatepageNums = new int[this.pages]; for(startNum = 0; startNum < this.pages; ++startNum) { this.navigatepageNums[startNum] = startNum + 1; } } else { this.navigatepageNums = new int[this.navigatePages]; startNum = this.pageNum - this.navigatePages / 2; int endNum = this.pageNum + this.navigatePages / 2; int i; if(startNum < 1) { startNum = 1; for(i = 0; i < this.navigatePages; ++i) { this.navigatepageNums[i] = startNum++; } } else if(endNum > this.pages) { endNum = this.pages; for(i = this.navigatePages - 1; i >= 0; --i) { this.navigatepageNums[i] = endNum--; } } else { for(i = 0; i < this.navigatePages; ++i) { this.navigatepageNums[i] = startNum++; } } } } private void calcPage() { if(this.navigatepageNums != null && this.navigatepageNums.length > 0) { this.navigateFirstPage = this.navigatepageNums[0]; this.navigateLastPage = this.navigatepageNums[this.navigatepageNums.length - 1]; if(this.pageNum > 1) { this.prePage = this.pageNum - 1; } if(this.pageNum < this.pages) { this.nextPage = this.pageNum + 1; } } } private void judgePageBoudary() { this.isFirstPage = this.pageNum == 1; this.isLastPage = this.pageNum == this.pages; this.hasPreviousPage = this.pageNum > 1; this.hasNextPage = this.pageNum < this.pages; } public int getPageNum() { return this.pageNum; } public void setPageNum(int pageNum) { this.pageNum = pageNum; } public int getPageSize() { return this.pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getSize() { return this.size; } public void setSize(int size) { this.size = size; } public String getOrderBy() { return this.orderBy; } public void setOrderBy(String orderBy) { this.orderBy = orderBy; } public int getStartRow() { return this.startRow; } public void setStartRow(int startRow) { this.startRow = startRow; } public int getEndRow() { return this.endRow; } public void setEndRow(int endRow) { this.endRow = endRow; } public long getTotal() { return this.total; } public void setTotal(long total) { this.total = total; } public int getPages() { return this.pages; } public void setPages(int pages) { this.pages = pages; } public List<T> getList() { return this.list; } public void setList(List<T> list) { this.list = list; } /** @deprecated */ @Deprecated public int getFirstPage() { return this.navigateFirstPage; } /** @deprecated */ @Deprecated public void setFirstPage(int firstPage) { this.navigateFirstPage = firstPage; } public int getPrePage() { return this.prePage; } public void setPrePage(int prePage) { this.prePage = prePage; } public int getNextPage() { return this.nextPage; } public void setNextPage(int nextPage) { this.nextPage = nextPage; } /** @deprecated */ @Deprecated public int getLastPage() { return this.navigateLastPage; } /** @deprecated */ @Deprecated public void setLastPage(int lastPage) { this.navigateLastPage = lastPage; } public boolean isIsFirstPage() { return this.isFirstPage; } public void setIsFirstPage(boolean isFirstPage) { this.isFirstPage = isFirstPage; } public boolean isIsLastPage() { return this.isLastPage; } public void setIsLastPage(boolean isLastPage) { this.isLastPage = isLastPage; } public boolean isHasPreviousPage() { return this.hasPreviousPage; } public void setHasPreviousPage(boolean hasPreviousPage) { this.hasPreviousPage = hasPreviousPage; } public boolean isHasNextPage() { return this.hasNextPage; } public void setHasNextPage(boolean hasNextPage) { this.hasNextPage = hasNextPage; } public int getNavigatePages() { return this.navigatePages; } public void setNavigatePages(int navigatePages) { this.navigatePages = navigatePages; } public int[] getNavigatepageNums() { return this.navigatepageNums; } public void setNavigatepageNums(int[] navigatepageNums) { this.navigatepageNums = navigatepageNums; } public int getNavigateFirstPage() { return this.navigateFirstPage; } public int getNavigateLastPage() { return this.navigateLastPage; } public void setNavigateFirstPage(int navigateFirstPage) { this.navigateFirstPage = navigateFirstPage; } public void setNavigateLastPage(int navigateLastPage) { this.navigateLastPage = navigateLastPage; } public String toString() { StringBuffer sb = new StringBuffer("PageInfo{"); sb.append("pageNum=").append(this.pageNum); sb.append(", pageSize=").append(this.pageSize); sb.append(", size=").append(this.size); sb.append(", startRow=").append(this.startRow); sb.append(", endRow=").append(this.endRow); sb.append(", total=").append(this.total); sb.append(", pages=").append(this.pages); sb.append(", list=").append(this.list); sb.append(", prePage=").append(this.prePage); sb.append(", nextPage=").append(this.nextPage); sb.append(", isFirstPage=").append(this.isFirstPage); sb.append(", isLastPage=").append(this.isLastPage); sb.append(", hasPreviousPage=").append(this.hasPreviousPage); sb.append(", hasNextPage=").append(this.hasNextPage); sb.append(", navigatePages=").append(this.navigatePages); sb.append(", navigateFirstPage").append(this.navigateFirstPage); sb.append(", navigateLastPage").append(this.navigateLastPage); sb.append(", navigatepageNums="); if(this.navigatepageNums == null) { sb.append("null"); } else { sb.append('['); for(int i = 0; i < this.navigatepageNums.length; ++i) { sb.append(i == 0?"":", ").append(this.navigatepageNums[i]); } sb.append(']'); } sb.append('}'); return sb.toString(); }}4、持久层SQL:
跟普通查询一样,不需要加入页数参数,pageHelper分页插件自动进行分页,至于原理能力有限暂时解释不了。
5、加到服务器中的jar包
因为我的本地有maven项目管理工具,服务器中没有maven这样的工具,还需要加入这个jar包才能形成依赖,才可以进行使用。
阅读全文
0 0
- springboot+mybatis分页插件pageHelper的配置与使用
- SpringBoot集成MyBatis的分页插件PageHelper
- springboot +mybatis + pagehelper分页插件
- 【MyBatis】MyBatis分页插件PageHelper的使用
- 【MyBatis】MyBatis分页插件PageHelper的使用
- 【MyBatis】MyBatis分页插件PageHelper的使用
- MyBatis分页插件-PageHelper的配置与应用
- springboot使用pageHelper分页插件
- Mybatis中分页插件PageHelper的使用
- Mybatis分页插件-PageHelper的使用
- mybatis分页插件PageHelper的使用
- Mybatis分页插件PageHelper的使用
- MyBatis分页插件PageHelper的使用
- Mybatis分页插件PageHelper的使用
- Mybatis分页插件PageHelper的简单使用
- MyBatis分页插件PageHelper的使用
- Mybatis分页插件-PageHelper(5.0)的使用
- MyBatis分页插件PageHelper的使用
- matlab常用快捷键
- 教你如何绕过百度客戶端快速下載百度云盘的电影等文件,仅适应MAC OSx
- jedis源码分析和使用
- ssm 拦截器
- Timer与ScheduledExecutorService
- springboot+mybatis分页插件pageHelper的配置与使用
- java内存泄漏
- MyBatis动态sql_where查询条件
- AC自动机模板
- Linux下安装Samba共享文件
- 应用程序打包神器Inno setup
- LeetCode——Palindrome Linked List
- mysql创建高性能的索引
- [BZOJ3669][Noi2014]魔法森林(动态spfa)