PageHelper分页插件使用案列

本文详细介绍了PageHelper分页插件的使用方法,包括引入依赖、Spring整合MyBatis配置、Controller层数据封装及界面展示代码。通过具体实例展示了如何实现数据分页查询,适用于Web应用中大量数据的高效展示。

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;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值