知识积累:PageHelper分页问题,页码小于总页数和大于总页数返回数据问题,PageHelper分页失效

发布于:2022-12-24 ⋅ 阅读:(283) ⋅ 点赞:(0)

问题:

项目中有些功能使用到了PageHelper进行分页处理,使用的方式为下方代码:

PageHelper.startPage(request.getPageNum(), request.getPageSize(), true);

这种使用方式会出现,
当请求的页码数=0时,会返回所有数据;
当请求的页码数小于0时,返回第一页数据,页码数大于总页数时,会返回最后一页的数据。


通过debug跟踪发现是由于reasonable参数默认为true的时候,会进行pageNum的重置为pages大小,从而导致当请求的页码数大于总页数时,会返回最后一页的数据问题。
在这里插入图片描述
在这里插入图片描述

解决方案:

修改使用方式

PageHelper.startPage(request.getPageNum(), request.getPageSize(), true,false,null);

上面的方式可以解决当请求的页码数小于0时,返回第一页数据,页码数大于总页数时,会返回最后一页的数据的问题。

还需要分析当请求的页码数小于总页数时,会返回所有数据;
这个是由另一个参数pageSizeZero控制;
pageSizeZero说明:当设置为true的时候(默认为true),如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果
这里设置为false,解决当请求的页码数=0时,会返回所有数据问题。

修改使用方式

PageHelper.startPage(request.getPageNum(), request.getPageSize(), true,false,false);

参考:添加链接描述

-------------如果对你有用,请给个赞,谢谢~~
-------------欢迎各位留言交流,如有不正确的地方,请予以指正。【Q:981233589】

本文含有隐藏内容,请 开通VIP 后查看