PageHelper失效踩坑

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

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

案例

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

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

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

    
        
            
            
            
        
    

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

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

你可能感兴趣的:(PageHelper失效踩坑)