MybatisPlus整合Pagehelper实现分页

MyBatis-Plus自带分页PaginationInterceptor对象,但想要用MyBatis-Plus自带的分页功能的话需要在mapper对象中传入一个Page对象才可以实现分页;
PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql、oracle、mariaDB、DB2、SQLite、Hsqldb等。

1.pom引入(springBoot项目)



  com.github.pagehelper
  pagehelper-spring-boot-starter
  1.4.3



    com.baomidou
    mybatis-plus-boot-starter
    3.5.2
   

2.配置文件

mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  # 设置别名包扫描路径,通过该属性可以给包中的类注册别名
  type-aliases-package: com.example.springbootdemo.entity
  configuration: #开启日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
pagehelper:
  auto-dialect: on  #分页插件会自动检测当前的数据库链接,自动选择合适的分页方式
  reasonable: true #分页合理化参数,默认值为 false 。当该参数设置为 true 时, pageNum<=0 时会查询第一页, pageNum>pages (超过总数时),会查询最后一页
  support-methods-arguments: true #支持通过Mapper接口参数传递page参数,默认值为false
  page-size-zero: true #默认值为 false ,当该参数设置为 true 时,如果 pageSize=0 或者 RowBounds.limit =0 就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是 Page 类型)

3.使用

    /**
     * pageInfo对象中属性含义
     * private int pageNum;//当前页码
     * private int pageSize;//设置每页多少条数据
     * private int size;//当前页有多少条数据
     * private int startRow;//当前页码第一条数据的
     * private int endRow;//当前页码的开始条
     * private int pages;//当前页码结束条
     * private int prePage;//上一页(页面链接使用)
     * private int nextPage;//下一页(页面链接使用)
     * private boolean isFirstPage;//是否为第一页
     * private boolean isLastPage;//是否为最后一页
     * private boolean hasPreviousPage;//是否有前一页
     * private boolean hasNextPage;//是否有下一页
     * private int navigatePages;//导航页码数(就是总共有多少页)
     * private int[] navigatePageNums;//导航页码数(就是总共有多少页),可以用来遍历
     * private int navigateFirstPage;//首页号
     * private int navigateLastPage;//尾页号
     */
    @Test
    void test() {
        int pageNum = 1;
        int pageSize = 3;
        //1.引入分页插件,pageNum是第几页,pageSize是每页显示多少条,默认查询总数count
        Page page = PageHelper.startPage(pageNum, pageSize);
        //2.紧跟的查询就是一个分页查询-必须紧跟,这样才能保证安全分页, PageHelper 在 finally 代码段中自动清除了 ThreadLocal 存储的对象
        List articleList = apArticleService.list();
        //3.使用PageInfo包装查询后的结果,3是连续显示的条数
        PageInfo pageInfo = new PageInfo(articleList ,pageSize);
        System.out.println("总记录数:" + pageInfo.getTotal());
        System.out.println("总页数:" + pageInfo.getPages());
        System.out.println("一页的大小:" + pageInfo.getSize());
        System.out.println("是否有前一页:" + pageInfo.isHasPreviousPage());
    }

你可能感兴趣的:(MybatisPlus整合Pagehelper实现分页)