mybatis的分页插件使用方法
1.下载所需要的jar包,如果使用maven可以在maven中添加依赖;
插件的实现原理:
如果你想使用本项目的jar包而不是直接引入类,你可以在这里下载各个版本的jar包(点击Download下的jar即可下载)
由于使用了sql解析工具,你还需要下载这个文件(这个文件完全独立,不依赖其他):
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.1</version>
</dependency>
2、在mybatis的SqlMapConfig.xml中配置拦截器插件
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageHelper">
<property name="dialect" value="mysql"/>
</pulgin>
</plugins>
3、在执行查询的sql语句钱加一句话:
PageHelper.startPage(page,rows);
page是查询的哪一页,rows是该页显示的记录条数。
4、取出查询的总记录数
利用PageInfo类。
PageInfo<> pageInfo=new PageInfo<>(list);
这里的list是通过数据库查询出来的结果集,在PageInfo中封装,通过pageInfo.getTotal()获取总的记录数量。
其中分页插件总共5个java类:
分页插件项目中的正式代码一共有个5个Java文件,这5个文件的说明如下:
- Page<E>[必须]:分页参数类,该类继承ArrayList,虽然分页查询返回的结果实际类型是Page<E>,但是可以完全不出现所有的代码中,可以直接当成List使用。返回值不建议使用Page,建议仍然用List。如果需要用到分页信息,使用下面的PageInfo类对List进行包装即可。
- PageHelper[必须]:分页插件拦截器类,对Mybatis的拦截在这个类中实现。
- PageInfo[可选]:Page<E>的包装类,包含了全面的分页属性信息。
- SqlParser[可选]:提供高效的count查询sql。主要是智能替换原sql语句为count(*),去除不带参数的order by语句。需要jsqlparser-0.9.1.jar支持。
- SqlUtil[必须]:分页插件工具类,分页插件逻辑类,分页插件的主要实现方法都在这个类中。