PageHelper完整示例:
第一步:导包
<!--引入pagehelper分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
第二步:配置到spring整合mybatis文件中
我这文件名是mybatis-config.xml
<!-- -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!--分页参数合理化 -->
<property name="reasonable" value="true"/>
</plugin>
</plugins>
第三步:在controller层封装得到的数据
//从键值队里得到页码:pn,设置默认值为1
@RequestMapping("/emp")
public String getEmps(@RequestParam(value = "pn",defaultValue = "1") Integer pn,Model model){
//在查询之前调用(pn:页码,7:数据数量)
PageHelper.startPage(pn,7);
//startpage后面紧跟着的这个查询就是分页查询
List<Employee> emps=employeeService.getAll();
//封装了详细的分页信息,包括查询出来的数据,连续查询5页
PageInfo page=new PageInfo(emps,5);
//把数据放在请求域中
model.addAttribute("pageInfo",page);
return "index";
}
第四步:在界面编写html代码
<div class="row">
<!-- 分页信息 -->
<div class="col-6">
当前${pageInfo.pageNum }页,总${pageInfo.pages }页,总${pageInfo.total }条记录
</div>
<!-- 分页条 -->
<div class="col-6">
<nav aria-label="Page navigation example">
<ul class="pagination justify-content-end">
<li class="page-item"><a class="page-link" href="${APP_PATH }/emp?pn=1">首页</a></li>
<li class="page-item ">
<a class="page-link" href="${APP_PATH }/emp?pn=${pageInfo.pageNum-1 }">《</a>
</li>
<c:forEach items="${pageInfo.navigatepageNums }" var="pageNum">
<c:if test="${pageNum == pageInfo.pageNum }"></c:if>
<li class="active"><a class="page-link" href="${APP_PATH }/emp?pn=${pageNum }">${pageNum }</a></li>
</c:forEach>
<li class="page-item">
<a class="page-link" href="${APP_PATH }/emp?pn=${pageInfo.pageNum +1 }">》</a>
</li>
<li class="page-item"><a class="page-link" href="${APP_PATH }/emp?pn=${pageInfo.pages}">末页</a></li>
</ul>
</nav>
</div>
</div>
效果图如下:

PageInfo 类里面的参数,参考使用
private static final long serialVersionUID = 1L;
//当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//由于startRow 和endRow 不常用,这里说个具体的用法
//可以在页面中"显示startRow 到endRow 共size 条数据"
//当前页面第一个元素在数据库中的行号
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 = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;
//导航条上的第一页
private int navigateFirstPage;
//导航条上的最后一页
private int navigateLastPage;
}
本文详细介绍了PageHelper分页插件的使用方法,包括引入依赖、Spring整合MyBatis配置、Controller层数据封装及界面展示代码。通过具体实例展示了如何实现数据分页查询,适用于Web应用中大量数据的高效展示。
1447

被折叠的 条评论
为什么被折叠?



