使用之前要导入依赖包,这里要注意PageHelper与mybatis版本的兼容性!!!
mybatis版本又要对应mybatis-spring的版本!!!
使用方法:
1.下载PageHelper的jar包,或者直接导入依赖。
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.1</version>
</dependency>
楼主使用的是阿里云的分页插件(版本无所谓,你也可以选择别的版本),源码都是中文的,有兴趣的可以看看。
Mybatis版本不能低于3.3,否则返回的PageInfo的所有toString参数都为0和null!!!
mybatis的3.4.0及以上版本只支持mybatis-spring1.3.0及以上版本!!!
附上楼主依赖包:
<!-- mybatis版本 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- mybatis-spring版本 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
2.在mybatis的配置文件 spring-mybatis 中配置PageHelper插件,因为在spring-mybatis中配置的话
要考虑命名空间的位置问题,楼主初学还不会改,所以直接又写了一个spring-mybatis-PageHelper配置文件,
配置示例:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置分页插件 -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
</configuration>
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
现在配置就完成了,可以直接写代码测试了。
3.dao包和service方法都不变,mapper语句楼主测试用的所以用的最简单的
<select id="listDepts" resultType="Dept">
select * from department
</select>
测试代码如下:
@Test
public void testListDepts() {
PageHelper.startPage(1, 3);
List<Dept> list = deptService.listDepts();
PageInfo<Dept> info = new PageInfo<Dept>(list);
}
PageHelper只对紧跟着的第一个SQL语句起作用,也就是service的查询方法。
至此分页就出来了,超级简单,PageInfo是PageHelper包里面封装好的类,很详细。
具体处理流程,可以看源码,楼主刚开始用这个分页的时候,因为版本不对,一直没有分页数据,找了半天,因为是第一次用,所以...,后来才想起来会不会是版本的问题,在百度搜了10多个说mybatis的都没有说到版本的兼容问题。所以发这个,希望能给遇到同样问题的一个解决方案。
mysql有limit分页,楼主是自己用limit写完一个分页处理之后,才来用插件的,加深了解。