我是靠谱客的博主 爱撒娇溪流,最近开发中收集的这篇文章主要介绍使用PageHelper时发现超过最大数量的页数,仍然可以返回数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近在做项目的时候,使用PageHelper来进行分页查询,发现一个现象:明明查询出来的总数只有7个,分页的时候每页10个,按理说只有第一页返回会有数据,第二页开始就没有数据了,但是实际情况却是第二页返回的数据与第一页一致,甚至第三页,第四页。。。也是与第一页一样的数据返回结果

通过分析PageHelper的源码,发现PageHelper里面有一个reasonable参数,如果是true,会分页合理化,针对不合理的页码自动处理。这个参数可以通过我们手动在mybatis的config文件中自己配置。

在拦截器PageInterceptor中,调用AbstractHelperDialect.afterCount方法判断是否继续进行分页

在AbstractHelperDialect.afterCount方法中会调用Page.setTotal

在Page.setTotal方法中会对分页进行合理化判断,不合理的页码会自动处理,把最大页数赋值给当前页数,

并且通过calculateStartAndEndRow方法重新计算起止号

所以,如果在mybatis的config文件中把reasonable设置为false,分页插件就不会给我们自动进行分页合理化了。

最后

以上就是爱撒娇溪流为你收集整理的使用PageHelper时发现超过最大数量的页数,仍然可以返回数据的全部内容,希望文章能够帮你解决使用PageHelper时发现超过最大数量的页数,仍然可以返回数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部