前沿

今天遇到了一个 Mybatis 分页插件 pageHelper 的 BUG,简单来说就是我的查询总数和我的 pageSize 总是一样,这让我很苦恼

解决办法

上网查了很多资料,终于找到了解决办法。功夫不负有心人呐,首先我想的是自己手写一个分页方法,但是这个方法被我后面给否决了,原因就是太麻烦了,程序员真的是能偷懒就偷懒,哈哈哈哈哈哈哈,后面我就想到自己收到给它 set 一个 total 进去类似于下面的这种

解决办法一

但是后来我发现这种办法真是太蠢了,这样只是看上去做到了分页,把我想要的数据查出来然后再set进来,理论上是没问题,但是当数据量很大的时候,几十万几百万的情况下查询真的是太慢了!!!

后面我查看了一下 pageHelper 的源码发现 startPage 开启分页方法只对后面的sql查询起作用,所以我们只需要把查询出来的 list 记录下来,然后再跟最终的 list 比较替换一下就好,具体的方法如下

解决方法二

大功告成,不仅实现了分页,而且查询速度效率也很快