PageHelper是国内非常优秀的一款开源的 mybatis 分页插件,它支持基本主流与常用的数据库,例如 Oracle、Mysql、MariaDB、SQLite、Hsqldb 等。
官网网址:https://pagehelper.github.io/
GitHub地址:https://github.com/pagehelper/Mybatis-PageHelper
How To Use:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/en/HowToUse.md
二.基本使用
1.第一步:导入Maven坐标
<!-- 集中定义依赖版本号 --> <properties> <pagehelper.version>5.1.2</pagehelper.version> </properties> <dependencies> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>${pagehelper.version}</version> </dependency> </dependencies>
applicationContext-dao.xml
<!-- 配置sqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!-- 配置实体类别名 --> <property name="typeAliasesPackage" value="cn.dintalk.domain"/> <!-- 配置pageHelper分页的插件 --> <property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <!-- 这里的几个配置主要演示如何使用,如果不理解,一定要去掉下面的配置 --> <property name="properties"> <value> <!-- 可区分数据库 --> helperDialect=mysql <!-- 是否合理分页,针对首页尾页越界 --> reasonable=true </value> </property> </bean> </array> </property> </bean>
3.第三步:service层分页
PageHelper的基本使用有6种,可见官方文档。这里介绍PageHelper.startPage的静态方法。
dao层代码
// 查询所有 List<Company> findAll();
dao层映射.xml
<!-- 查询所有 --> <select id="findAll" resultMap="baseResultMap"> select * from sh_company </select>
service层代码
//使用PageHelper分页查询,page:当前页面,size:每页显示数量 public PageInfo findPageByHelper(int page, int size) { //1.调用静态方法,开始分页 PageHelper.startPage(page,size); //2.照常调用 List<Company> companies = companyDao.findAll(); return new PageInfo(companies); }
-
返回值PageInfo中包含了分页页面所需的一切信息,包括展示的数据及页码、上一页等等。在页面取值的时候可以跟到PageInfo源码中查看清楚即可!
关注微信公众号,随时随地学习