Spring + PageHelper实现分页
简短的记录~
整体分为以下4步:
1、引入jar 包或者添加依赖:
你可以从下面的地址中下载最新版本的 jar 包
https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/
http://repo1.maven.org/maven2/com/github/pagehelper/pagehelper/
由于使用了sql 解析工具,你还需要下载 jsqlparser.jar:
http://repo1.maven.org/maven2/com/github/jsqlparser/jsqlparser/0.9.5/
2). 使用 Maven
在 pom.xml 中添加如下依赖:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>最新版本</version>
</dependency>
2、配置拦截器,如下:
可以选择在Sping中配置或者在Mybatis中配置
在Mybatis 中配置如下:
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="param1" value="value1"/>
</plugin>
</plugins>
或者在 spring 中 配置:如下:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注意其他配置 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<!--使用下面的方式配置参数,一行配置一个 -->
<value>
params=value1
</value>
</property>
</bean>
</array>
</property>
</bean>
3、在 控制器中执行 分页查询:
代码如下:
/*
* 分页功能*/
@RequestMapping("/page")
public String splitPage(HttpServletRequest request,@RequestParam("pageNum")int pageNum) {
// pageNum:当前页码;pageSize:页面容量
int pageSize = 8;
PageHelper.startPage(pageNum,pageSize);
List<Users> usersList = userService.selecteUsers();
// 保存页面 以及查询出来的数据
request.getSession().setAttribute("pageNum",pageNum);
request.getSession().setAttribute("usersList",usersList);
return "index";
}
PageHelper.startPage(pageNum,pageSize);
List usersList = userService.selecteUsers();
其中 PageHelper.startPage(pageNum,pageSize);
是分页的工具,pageNum:当前页码;pageSize:每页显示多少条数据;
List usersList = userService.selecteUsers();
是我自己的 Select 方法,必须要紧跟PageHelper.startPage(pageNum,pageSize)这条语句后面。才会进行分页;
使用 PageHelper 进行分页时 自己的Sql 语句
不需要写成 Select * from … Limit (…)
4、前台将 pageNum 传到 控制器达到控制分页效果:
<div>
<a href="${pageContext.request.contextPath}/page?pageNum=${pageNum -1}">上一页</a>||
<a href="${pageContext.request.contextPath}/page?pageNum=${pageNum+1}">下一页</a>||
</div>
简短的原理就是这样,如果想要详细的了解,可以去参考官方文档:
官方文档:https://pagehelper.github.io/