pagehelper分页工具,实现了分页功能,使用起来也很方便
1,在pom.xml文件中增加pagehelper引入,代码如下:
<!-- pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
2,springboot的配置文件中增加pagehelper的配置参数:
# pagehelper
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql;
3,mybatis配置文件中增加查询的xml配置
<select id="findList" resultMap="BaseResultMap">
select * from emp_info
</select>
4,增加分页工具类,分别是请求类:PageRequest.java, 分页参数类:PageResult.java, 分页工具类:PageUtils.java
PageRequest.java
package com.example.utils; 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; } public PageRequest() { this.pageSize = 5; } }
PageResult.java
package com.example.utils; import java.util.List; public class PageResult { /** * 当前页码 */ private int pageNum; /** * 每页数量 */ private int pageSize; /** * 记录总数 */ private long totalSize; /** * 页码总数 */ private int totalPages; /** * 数据模型 */ private List<?> content; //当前页面第一个元素在数据库中的行号 private int startRow; //当前页面最后一个元素在数据库中的行号 private int endRow; //前一页 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 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; } public int getPrePage() { return prePage; } public void setPrePage(int prePage) { this.prePage = prePage; } public int getNextPage() { return nextPage; } public void setNextPage(int nextPage) { this.nextPage = nextPage; } public boolean isFirstPage() { return isFirstPage; } public void setFirstPage(boolean isFirstPage) { this.isFirstPage = isFirstPage; } public boolean isLastPage() { return isLastPage; } public void setLastPage(boolean isLastPage) { this.isLastPage = isLastPage; } public boolean isHasPreviousPage() { return hasPreviousPage; } public void setHasPreviousPage(boolean hasPreviousPage) { this.hasPreviousPage = hasPreviousPage; } public boolean isHasNextPage() { return hasNextPage; } public void setHasNextPage(boolean hasNextPage) { this.hasNextPage = hasNextPage; } public int getNavigatePages() { return navigatePages; } public void setNavigatePages(int navigatePages) { this.navigatePages = navigatePages; } public int[] getNavigatepageNums() { return navigatepageNums; } public void setNavigatepageNums(int[] navigatepageNums) { this.navigatepageNums = navigatepageNums; } public int getNavigateFirstPage() { return navigateFirstPage; } public void setNavigateFirstPage(int navigateFirstPage) { this.navigateFirstPage = navigateFirstPage; } public int getNavigateLastPage() { return navigateLastPage; } public void setNavigateLastPage(int navigateLastPage) { this.navigateLastPage = navigateLastPage; } public int getStartRow() { return startRow; } public void setStartRow(int startRow) { this.startRow = startRow; } public int getEndRow() { return endRow; } public void setEndRow(int endRow) { this.endRow = endRow; } }
PageUtils.java
package com.example.utils; import com.github.pagehelper.PageInfo; public class PageUtils { /** * 将分页信息封装到统一的接口 * @param pageRequest * @param pageInfo * @return */ public static PageResult getPageResult(PageRequest pageRequest, 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()); pageResult.setNavigatepageNums(pageInfo.getNavigatepageNums()); pageResult.setHasNextPage(pageInfo.isHasNextPage()); pageResult.setHasPreviousPage(pageInfo.isHasPreviousPage()); pageResult.setPrePage(pageInfo.getPrePage()); pageResult.setNextPage(pageInfo.getNextPage()); return pageResult; } }
EmpInfoDao.java代码:
package com.example.dao; import java.util.List; import org.apache.ibatis.annotations.Mapper; import com.example.entity.EmpInfo; @Mapper public interface EmpInfoDao { int addEmpInfo(EmpInfo empInfo); EmpInfo empLogin(EmpInfo empInfo); List<EmpInfo> findList(); }
EmpInfoService.java
package com.example.dao.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.example.dao.EmpInfoDao; import com.example.dao.service.EmpInfoService; import com.example.entity.EmpInfo; import com.example.utils.PageRequest; import com.example.utils.PageResult; import com.example.utils.PageUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @Service public class EmpInfoServiceImp implements EmpInfoService{ @Autowired private EmpInfoDao dao; public int addEmpInfo(EmpInfo empInfo) { return dao.addEmpInfo(empInfo); } public EmpInfo empLogin(EmpInfo empInfo){ return dao.empLogin(empInfo); } public PageResult findList(PageRequest pageRequest) { return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest)); } /** * 调用分页插件完成分页 * @param pageQuery * @return */ private PageInfo<EmpInfo> getPageInfo(PageRequest pageRequest) { int pageNum = pageRequest.getPageNum(); int pageSize = pageRequest.getPageSize(); PageHelper.startPage(pageNum, pageSize); List<EmpInfo> sysMenus = dao.findList(); return new PageInfo<EmpInfo>(sysMenus); } }
EmpInfoService.java
package com.example.dao.service; import org.springframework.stereotype.Service; import com.example.entity.EmpInfo; import com.example.utils.PageRequest; import com.example.utils.PageResult; @Service public interface EmpInfoService { int addEmpInfo(EmpInfo empInfo); EmpInfo empLogin(EmpInfo empInfo); PageResult findList(PageRequest pageRequest); }
EmpInfoController.java
package com.example.controller; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import com.example.dao.service.EmpInfoService; import com.example.entity.EmpInfo; import com.example.utils.CommonUtils; import com.example.utils.PageRequest; import com.example.utils.PageResult; import com.example.utils.StringUtils; @Controller public class EmpInfoController { @Autowired @Qualifier("empInfoServiceImp") private EmpInfoService service; @RequestMapping("emplist") public String findList(Model model, @RequestParam Map<String, Object> map){ Logger logger =LoggerFactory.getLogger(this.getClass()); PageRequest pageInfo = new PageRequest(); pageInfo.setPageNum(CommonUtils.toSafeInt(map.get("pageNum"))); //pageInfo.setPageSize(CommonUtils.toSafeInt(map.get("pageSize"))); logger.debug("pageNum======" + pageInfo.getPageNum()); logger.debug("pageSize======" + pageInfo.getPageSize()); PageResult pageResult = service.findList(pageInfo); model.addAttribute("pageInfo", pageResult); return "user/emplist"; } }
页面显示 emplist.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Title</title> <link rel="stylesheet" href="test.css" type="text/css" /> </head> <body> <h1>employee information</h1> <!--显示分页信息--> <div class="modal-footer no-margin-top"> <div> <table class="table table-hover" id="dataTable1" border="1px" width="80%"> <tr> <th>用户ID</th> <th>用户名</th> <th>出生年月</th> <th>年龄</th> <th>电子邮箱</th> </tr> <tr th:each="oss:${pageInfo.content}"> <td th:text="${oss.empId}"></td> <td th:text="${oss.empName}"></td> <td th:text="${oss.empBrithDate}"></td> <td th:text="${oss.empAge}"></td> <td th:text="${oss.empEmail}"></td> <th> <a class="btn btn-default" href="index.html" role="button"> <span class="glyphicon glyphicon-floppy-remove" aria-hidden="true"></span> 删除</a> </th> </tr> </table> </div> <div> <a class="btn btn-default" href="/register" role="button"> <span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span> 新增</a> </div> <div class="col-md-6"> 当前第 [[${pageInfo.pageNum}]]页,共 [[${pageInfo.totalPages}]] 页.一共 [[${pageInfo.totalSize}]] 条记录 </div> <ul class="pagination pull-right no-margin"> <li th:if="${pageInfo.hasPreviousPage}"> <a th:href="'/emplist?pageNum=1'">首页</a> </li> <li class="prev" th:if="${pageInfo.hasPreviousPage}"> <a th:href="'/emplist?pageNum='+${pageInfo.prePage}"> <i class="ace-icon fa fa-angle-double-left">上一页</i> </a> </li> <!--遍历条数--> <li th:each="nav:${pageInfo.navigatepageNums}"> <a th:href="'/emplist?pageNum='+${nav}" th:text="${nav}" th:if="${nav != pageInfo.pageNum}"></a> <span style="font-weight: bold;background: #6faed9;" th:if="${nav == pageInfo.pageNum}" th:text="${nav}" ></span> </li> <li class="next" th:if="${pageInfo.hasNextPage}"> <a th:href="'/emplist?pageNum='+${pageInfo.nextPage}"> <i class="ace-icon fa fa-angle-double-right">下一页</i> </a> </li> <li> <a th:href="'/emplist?pageNum='+${pageInfo.totalPages}">尾页</a> </li> </ul> </div> <div>当前页号:<span th:text="${pageInfo.pageNum}"></span></div> <div>每页条数:<span th:text="${pageInfo.pageSize}"></span></div> <div>起始行号:<span th:text="${pageInfo.startRow}"></span></div> <div>终止行号:<span th:text="${pageInfo.endRow}"></span></div> <div>总结果数:<span th:text="${pageInfo.totalSize}"></span></div> <div>总页数:<span th:text="${pageInfo.totalPages}"></span></div> <hr /> <div>是否为第一页:<span th:text="${pageInfo.isFirstPage}"></span></div> <div>是否为最后一页:<span th:text="${pageInfo.isLastPage}"></span></div> <div>是否有前一页:<span th:text="${pageInfo.hasPreviousPage}"></span></div> <div>是否有下一页:<span th:text="${pageInfo.hasNextPage}"></span></div> </body> </html>
相关推荐
在本文中,我们将深入探讨如何在SpringBoot项目中集成Mybatis并使用PageHelper进行分页。SpringBoot以其简洁的配置和强大的自动配置功能,已成为Java开发中的热门选择。Mybatis作为一个轻量级的持久层框架,它允许...
在本文中,我们将深入探讨如何在SpringBoot项目中整合MyBatis,并利用PageHelper插件实现接口返回值的分页功能。SpringBoot以其简洁、快速的特性,成为了现代Java开发中的首选框架,而MyBatis作为轻量级的持久层框架...
在本文中,我们将深入探讨如何使用SpringBoot、Mybatis、Druid和PageHelper来实现多数据源和分页功能。首先,SpringBoot是基于Spring框架的简化版本,它旨在简化微服务开发,提供了自动配置、内嵌式Web服务器以及...
在IT行业中,SpringBoot、Mybatis以及PageHelper是常见的Java...通过这个项目,你可以学习到如何在SpringBoot环境中集成Mybatis和PageHelper,进行数据库操作和分页查询。通过实际操作,加深对这三个技术的理解和应用。
SpringBoot中mybatis分页插件的使用--【pagehelper组件】 本系列校训 用免费公开视频,卷飞培训班哈人!打死不报班,赚钱靠狠干! 只要自己有电脑,前后项目都能搞!N年苦学无人问,一朝成名天下知! 详情看同名博客
Android+Java后端(Springboot+Mybatis)小商店项目源码+数据库+项目说明.zip 主要实现一个商城的下单、购物车、支付等基本功能,熟悉后端的开发过程,因为自己做...PageHelper MyBatis物理分页插件 Redis 分布式缓存
在本文中,我们将深入探讨如何在SpringBoot项目中整合MyBatis-Plus,实现多表分页查询。MyBatis-Plus是一个强大的MyBatis扩展,简化了对数据库的操作,包括CRUD操作以及复杂的关联查询。它提供了丰富的API,使得开发...
在SpringBoot项目中,整合Mybatis-Plus并实现多数据源的动态切换,同时支持分页查询是一项常见的需求。以下将详细阐述这个过程中的关键步骤和技术要点。 首先,我们需要引入必要的Maven依赖。这里提到了四个关键...
本项目是一个以SpringBoot为核心框架,结合JPA(Java Persistence API)与Mybatis,利用PageHelper实现高效分页,并采用Restful风格设计API的实战案例。这个案例旨在帮助开发者快速理解如何在SpringBoot环境下整合...
在本项目中,"springboot+mybatis+pageHelper"是一个基于Spring Boot、MyBatis和PageHelper的简单但功能齐全的数据分页解决方案。这个框架组合是目前企业级开发中非常流行的技术栈,尤其适用于快速构建后端服务。...
PageHelper是MyBatis的一个分页插件,它使得在进行数据查询时能够方便地实现分页功能。下面我们将详细介绍如何将PageHelper集成到Spring Boot项目中,以及它的工作原理和优势。 **1. 集成PageHelper** 首先,我们...
实际项目中,还可以配置事务管理、使用Mybatis的插件(如PageHelper分页插件)、动态SQL等功能,进一步提高开发效率和代码质量。 通过这个项目,初学者可以了解到SpringBoot如何简化项目的配置,Mybatis如何处理...
- **PageHelper分页插件**:这是一个非常实用的Mybatis分页插件,它可以实现物理分页和逻辑分页,只需简单配置即可实现高效、便捷的分页功能。 - **Mybatis-Plus**:它是Mybatis的增强工具,在Mybatis的基础上只做...
PageHelper分页插件则是MyBatis中常用的实用插件,只需简单配置即可实现高效分页功能,提升开发效率。 五、整合优势 SpringBoot整合MyBatis的优势在于: - 简化配置:SpringBoot的自动配置特性使得MyBatis的集成变...
在本项目中,我们主要探讨的是一个基于Spring Boot框架,结合MyBatis、PageHelper分页插件、Druid连接池以及Generator逆向工程插件的整合应用。这些技术都是现代Java开发中常用且重要的组件,下面将逐一详细介绍它们...
本文将详细介绍如何在SpringBoot项目中整合Mybatis并利用PageHelper实现分页功能。 首先,我们要引入PageHelper的依赖。在项目pom.xml文件中添加以下代码: ```xml <groupId>com.github.pagehelper</groupId> ...
本文将深入探讨如何在SpringBoot项目中整合Mybatis,并引入PageHelper进行分页处理,帮助开发者构建高效、易维护的后台系统。 一、SpringBoot与Mybatis的结合 1. 配置依赖:首先,我们需要在`pom.xml`文件中引入...
标题中的“springboot集成mybatis分页,freemark,spring,logback完整小例子”表明这是一个关于Spring Boot项目,其中整合了MyBatis用于数据库操作,FreeMarker作为模板引擎处理视图,以及Spring框架和Logback日志系统...
在本项目中,我们主要探讨的是一个基于SpringBoot和MyBatis框架的Web应用程序,其中PageHelper作为分页插件被应用。这个完整的实例项目涵盖了从前端到后端的交互,实现了CRUD(创建、读取、更新、删除)操作,并且...