【硬着头皮】PageHelper 必须用来分页?

简介: 【硬着头皮】PageHelper 必须用来分页?

前言



硬着头皮看看... 这些都是发现在一些项目里面的一些代码片段。


正文



案发现场:


项目查询数据需要分页查询,因此引入了PageHelper。


然后出现需求,一个接口需要分页查询,一个接口是查询全部。



作案手法:


作案者机智地写了两个查询接口,一个使用PageHelper做为分页,一个不使用。


盘问:


来自我的友好试探: 这么写着不累么?


作案者平淡无奇: 那有啥办法,这边分页查询,那边说不用分。


我:你不是用来PageHelper么,为啥还要写两套?


作案者满脸疑惑: 这是用来写分页的,还有不分页的接口只能分开写。


我(若有所思):行吧,你把代码提交我来教你用PageHelper。


改动:


在mybatis-config.xml文件加入配置:


    <plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper">
            <!--name:不用进行改变;value=”mysql”你所使用的数据库类型【mysql/oracle】-->
          <property name="dialect" value="mysql" />
         <!-- 该参数默认为false设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 和startPage中的pageNum效果一样-->
            <property name="offsetAsPageNum" value="true" />
            <!-- 该参数默认为false设置为true时,使用RowBounds分页会进行count查询-->
            <property name="rowBoundsWithCount" value="true" />
            <!-- 设置为true时,如果pageSize=0或者RowBounds.limit = 0就会查询出全部的结果 (相当于没有执行分页查询,但是返回结果仍然是Page类型)-->
            <property name="pageSizeZero" value="true" />
            <!-- 3.3.0版本可用- 分页参数合理化,默认false禁用 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据-->
            <property name="reasonable" value="true" />
            <!-- 3.5.0版本可用- 为了支持startPage(Object params)方法 增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值-->
            <property name="params"
                      value="pageNum=start;pageSize=limit;pageSizeZero=zero;reasonable=heli;count=contsql" />
        </plugin>
    </plugins>


代码使用:


 image.png


简单解释:


如果想使用pageHelper ,但是想支持查询所有(不分页):


传入参数pageSizeZero (true),那么这时候 传入的 pageSize如果为0,那么就是查询全部。


reasonable参数如果设置为true传入:


如果pageNum<1会查询第一页,如果pageNum>pages(总页数)会查询最后一页


count参数如果设置为true传入:


在执行查询语句前,会执行一次count统计,


image.png

相关文章
|
3月前
|
SQL Java 数据库连接
若依框架---PageHelper分页(四)
若依框架---PageHelper分页(四)
114 0
|
3月前
|
SQL Oracle 关系型数据库
若依框架---PageHelper分页(七)
若依框架---PageHelper分页(七)
97 0
|
3月前
|
SQL 数据库
若依框架---PageHelper分页(六)
若依框架---PageHelper分页(六)
113 0
|
3月前
|
SQL Oracle 关系型数据库
若依框架---PageHelper分页(五)
若依框架---PageHelper分页(五)
115 0
|
3月前
|
SQL Java 数据库连接
若依框架---PageHelper分页(三)
若依框架---PageHelper分页(三)
172 0
|
3月前
|
SQL Java 关系型数据库
PageHelper分页插件最新源码解读及使用
PageHelper分页插件最新源码解读及使用
|
3月前
pagehelper分页插件
pagehelper分页插件
47 0
|
3月前
|
SQL 缓存
若依框架---PageHelper分页(八)
若依框架---PageHelper分页(八)
58 0
|
3月前
|
SQL 安全 Java
若依框架---PageHelper分页(二)
若依框架---PageHelper分页(二)
150 0
|
3月前
|
SQL 缓存
若依框架---PageHelper分页(九)
若依框架---PageHelper分页(九)
65 0