PageHelper入门

PageHelper入门

大家好,今天给大家介绍一款功能非常强大的分页插件-----PageHelper。

分页是我们开发过程中常用的一个功能,但是写起来非常的繁琐,Mybatis则集成了PageHelper这一插件,

下面以一个实例展开。

笔者的例子是maven项目,开发工具是Idea,框架为SpringBoot,配置文件格式为*.yml,数据库为mysql。

首先我们导入依赖
        <!--分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
在配置文件中添加以下属性
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count==countSql
  page-size-zero: true
关于参数的说明
  • helper-dialect: 配置数据库连接方式

  • reasonable: 分页合理化参数,默认值为false,参数设置为true时,当pageNum<=0,查询第一页数据,当pageNum>总页数时,会查询最后一页。当使用默认值时,会根据参数进行查询。

  • params: count==countSql 设置当前页记录条数,比如,最后一页只有三条数据,此时count为3.

  • support-methods-arguments: 支持通过Mapper接口的参数来传递分页参数,分页插件会从查询方法的参数值中,自动根据上面 params 配置的 字段中取值,查找到合适的值时就会自动分页。

  • page-size-zero:默认值为false,当设置参数为true时,如果pageSize=0就会查询全部结果(即没有执行分页查询,但返回结果仍为Page类型。)

更多参数请查阅官方文档:

https://pagehelper.github.io/docs/howtouse/

在StudentService中添加方法

在这里插入图片描述

在实现方法中添加如下代码
public PageInfo<Student> search(int pageNum, int pageSize) {
        //设置当前页和页尺寸
        PageHelper.startPage(pageNum,pageSize);
        //获取数据
        List<Student> students = studentDao.findAll();
        //声名分页对象,使用list作为参数
        PageInfo<Student> studentPageInfo = new PageInfo<>(students);

        return  studentPageInfo;
    }
创建测试方法进行单元测试

结果如图

在这里插入图片描述

原理

结合上图可以看到PageHelper的执行过程,它一共执行了两次sql,第一次是自动查询表中所有数据,然后第二次才是根据我们传入的参数进行查询,在此过程中,总记录数,总页数等参数都是工具帮我们自动生成的,也就是说,我们只需要告诉它我要查第几页的数据,每一页几条数据,剩下的工作都由工具来完成,可以说是非常方便了。

笔者也是刚接触到这样的插件,如有不足之处敬请指教,更多学习请前往Pagehelper官网:

https://pagehelper.github.io/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值