MyBatis常见的三种分页方式

前言

  • 分页是我们在开发中绕不过去的一个坎!当你的数据量大了的时候,一次性将所有数据查出来不现实,所以我们一般都是分页查询的,减轻服务端的压力,提升了速度和效率!也减轻了前端渲染的压力!
  • 注意:由于 java 允许的最大整数为 2147483647,所以 limit 能使用的最大整数也是 2147483647,一次性取出大量数据可能引起内存溢出,所以在大数据查询场合慎重使用!
e3d6054e9c0ec06f20e4de90e4e860f2.jpeg

一、Limit分页

语法:

4909107d945d24d83c2bd5f8decb883d.jpeg

在实际项目中我们一般会加上为空为null判断,如下:

8a36bd6bb13bc9155b5a8cadd7df229c.jpeg

业务层代码:

3bc3256fa3c8499d58a354fb81fbb693.jpeg8020b3614b4212d509c8aac7158764a1.jpeg6b52d4d060005ecaf3dcb48305c69c21.jpeg执行结果:

965034d9a123544ee3d56c46d65dd052.jpeg

传入0,10时:

80400025bf0b846215a3835dd80bd479.jpeg

这些内容其实就时MySQL中的内容,不作再详细讲解了。

二、RowBounds分页(不推荐使用)

  • RowBounds帮我们省略了limit的内容,我们只需要在业务层关注分页即可!无须再传入指定数据!
  • 但是,这个属于逻辑分页,即实际上sql查询的是所有的数据,在业务层进行了分页而已,比较占用内存,而且数据更新不及时,可能会有一定的滞后性!不推荐使用!
  • RowBounds对象有2个属性,offset和limit。 offset:起始行数 limit:需要的数据行数 因此,取出来的数据就是:从第offset+1行开始,取limit行

业务层代码:

c7c244b890a7c68586536b24f07b4d3d.jpeg8ddd988204f7bdba7f44891f73e2be35.jpege5919cb5aa657ea5cbd421337db13af5.jpeg

执行查看结果:

41d8df0dfd9cdb6dc77e5d48f0554982.jpeg

三、Mybatis_PageHelper分页插件

  • 官方GitHub地址 官方地址
  • 引入jar包

f06e6a87127171dc4100141e91e417e5.jpeg

配置MyBatis核心配置文件

76be7ffbd365277371b3d750f0a19b39.jpeg业务层代码

4d088ba5e8159346bffc87de41625e77.jpeg执行结果

d034698135006370c4bf94ce4b026d05.jpeg

总结

  • PageHelper还是很好用的,也是物理分页!
  • 实际上我们一般用第二种比较多:Mapper接口方式的调用

f95246966af3054117cb62ec30f69cb3.jpeg48cde4e1430f363b6433242c5def3e76.jpeg086b9c9654e9390793561ab17a66efe3.jpegec92c93bb0db3d2197b95036cc245067.jpeg

拓展

  • d270d4cf550f081f1121a8d10335f8ad.jpeg
  • 这种方式十分方便快捷好用!推荐使用!
  • 篇幅有限,不可能所有用法都演示一遍!有兴趣的小伙伴可以自行测试一遍!
  • 悄悄的说,反正我是全部试了一遍,还整合了Spring,加了拦截器测试了!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值