Java分页查询 避免total 总是等于size

目录

 一、前言

 二、分页代码示例

三、总结


 一、前言

        相信很多初级Java开发小伙伴们在日常工作中进行分页查询的时候,会遇到分页的size总是和分页结果集中的total相等的情况。本文就浅谈下该怎么正确的分页。

       

 二、分页代码示例

        这里笔者采用Mybatis的 PageHelper 进行分页查询。直接看代码:

         其中,红框中的代码非常重要。不理解这一行代码,这也是导致很多小伙伴出错的原因。

       说白了,这一行代码用来接收分页开始后的分页查询数据,组装分页属性,其中就包含,诸如分页大小,页数,总条数等等,如下:

        就一个原则,开始分页后紧跟着的查询结果,用的泛型是什么,就用对应的 PageInfo 来接收数据。这个时候不用担心,业务需要的出参对象与查询出来的不一致。且看后面怎么操作。

        从第一张图中,我们可以看到,第四步,我们开始处理数据。通常实际开发中,大概率是要处理分页后查出来的业务数据,进行一定程度的封装。这一步,该怎么做就怎么做。

        关键是第5步,进行bean的copy。这个copy,实际上是复制的分页属性,包含分页大小,总数,是否有下一页等等。我们在第四步中封装的业务数据,在copy后,直接set 进去就可以了。

         那么到这里,利用Mybatis的分页插件实现分页的功能就准确无疑了。

三、总结

        看了很多笔友写的文章,告诉大家要如何实现分页,核心点我还是要强调一下2点:

        第一:分页插件开始分页只对后面紧跟的第一个查询语句有效。这一点大家应该都知道。

        第二:原则上怎么查都行,不用管要返回的业务数据将来如何(中间通常会进行独立封装),关键是查完了要用对应的泛型PageInfo来接收: 

        

        我看有的博主写的是查出来的必须要与返回的保持一致,其实是没有必要的。因为最后我们要进行copy属性的操作,set下值就行。

        水平有限,文中比有不当之处,欢迎留言交流。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘书书-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值