一. PageHelper简介
    PageHelper是Github上开源的MyBatis分页插件,使用起来非常的简单,方便,并且支持任何复杂的单表、多表分页。Github网址:
    https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md
    感兴趣的可以自己到官网查看。
    二.使用maven引入相关的jar
    在web项目的pom文件中引入两个jar,第一个是springboot对mybatis的支持jar.
    <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
    </dependency>
    第二个是springboot对pagehelper支持的jar.
    <dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.10</version>
    </dependency>
    配置如下图:
    使用PageHelper分页插件 - 图1撒旦
    三.配置PageHelper方言
    在项目配置文件application.properties配置pagehelper方言为mysql
    pagehelper.helper-dialect=mysql
    配置如下图:
    使用PageHelper分页插件 - 图2配置PageHelper方言
    因为现在对pagehelper的使用比较简单,所以就只配置了pagehelper.helper-dialect更多的参数可以参考github。
    四.编写业务逻辑代码
    使用pagehelper非常的简单,只需要在你想要分页的查询逻辑前添加一行代码即可,代码:
    PageHelper.startPage(pageNum, pageSize);
    pageNum:页数(第几页)
    pageSize:每页的数据行数

    public ``String ``getAll``(){
    ``PageHelper``.``_startPage_``(``4``, ``10``);
    ``List``<``UserInfo``> ``all ``= ``userInfoMapper``.getAll();
    ``PageInfo``<``UserInfo``> ``pageInfo ``= ``new ``PageInfo<>(``all``);
    ``return ``pageInfo``.toString();
    }

    这样就可以实现查询分页了。
    五.分析PageInfo类种主要属性的用法
    上图有一行注掉的代码
    PageInfo page = new PageInfo<>(userLinkInfoRespList);
    PageInfo其实是pagehelper给我们封装的一个类,里面有一些我们做分页表常用的属性,在这
    里我注释了几个比较常用的属性。
    使用PageHelper分页插件 - 图3PageInfo类所有属性
    pageNum:当前为第几页
    pageSize:每页的数据行数
    startRow:当前页数据从第几条开始
    endRow:当前页数据从第几条结束
    pages:总页数
    prePage:上一页页数
    nextPage:下一页页数
    hasPreviousPage:是否有上一页
    hasNextPage:是否有下一页
    navigatepageNums:所有页码的数组
    我们可以根据这几个属性控制页面切换的操作,比如hasPreviousPage为false表示没有上一页,
    当前为首页,我们可以控制页面不显示或者不能使用首页和上一页功能。非常的简单。
    下面是我做的一个小项目示例图: