美文网首页
PageHelper失效踩坑

PageHelper失效踩坑

作者: 木木子丶 | 来源:发表于2022-04-19 11:20 被阅读0次

    常见的pageHelper失效,一般由编写失误导致,根据源码指出pageHelper.startPage()方法必须放在查询的上面,
    并且分页只会对下面第一次查询有效

    我们这次的失效不是编写失误造成,从位置到mybatis映射都review了好几遍,没有发现任何失误

    案例

    1. db有3条记录
    2. pageNum传3;pageSize传10 (也就是第三页,每页1o条)

    错误
    这时候你会发现,他还会查出三条出来,正常第二页就已经没有任何数据了

    原因
    发现原开发人员copy网上的mybatis-config.xml中有这么一段配置

        <plugins>
            <plugin interceptor="com.github.pagehelper.PageInterceptor">
                <!-- config params as the following -->
                <!–分页参数合理化  –>
                <property name="reasonable" value="true"/>
            </plugin>
        </plugins>
    

    他的作用指,如果db总条数也就是total,小于了pageNum*pageSize之后的条数,那么他就会重定向pageNum为合理的数值,
    案例中pageNum就被重新指定回了1,所以还能查出来

    一般前端同学来说,不会发现这个问题,因为前端分页组件一般都会根据total除以pageSize来加载一共多少页,不会出现pageNum不合理的情况,但对于后端对接后端同学来说,如果对方工作做的疏忽传了个不合理的值,那么就会出现这个情况,总之我们可以注释掉这段配置即可

    相关文章

      网友评论

          本文标题:PageHelper失效踩坑

          本文链接:https://www.haomeiwen.com/subject/xqjsertx.html