MyBatis的三种分页方法

本文介绍了在Java开发中常用的三种分页方法:Limit分页、RowBounds(不推荐)和Mybatis_PageHelper插件。特别强调了Limit分页的限制和内存管理,以及Mybatis_PageHelper的物理分页优势和在实际项目中的应用。
摘要由CSDN通过智能技术生成

前言

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

一、Limit分页

语法:

4909107d945d24d83c2bd5f8decb883d.jpeg

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

8a36bd6bb13bc9155b5a8cadd7df229c.jpeg

业务层代码:

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

155815e855cdbdd7630cc14821a2491e.jpeg

传入0,10时:

6f1dd80f495b7f84b3a3f30e50dffd4d.jpeg

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

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

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

业务层代码:

b77ec04d591dd211dfe39b4903026cfb.jpeg6467b3a3e911cd63fad1af181efd5cf3.jpeg7966fbdc26670d87c17bed6fc822198b.jpeg

执行查看结果:

1e39eb71309b6a2e99084684ed3b8d5e.jpeg

三、Mybatis_PageHelper分页插件

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

b37c9365b0c1f0f2bf3ad2bfc0c36766.jpeg

配置MyBatis核心配置文件

886d570d4b610beed06c9b01e959ae21.jpeg业务层代码

bd982879534ae2b98dc914ce515cc86f.jpeg执行结果

760f527b233eb4c4fabf6a3ba57a2033.jpeg

总结

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

3149abb64b88ae72b76abf38296acd53.jpegf45db32ccc2111f39bf5a5759a49a01c.jpeg9005f8ed4db98f8cc5ffd4d7ca1a6556.jpeg6eb59431482deaf9b68d30900ffc778b.jpeg

拓展

  • 8e0a3cf13e446caa7f08e84b74cd0805.jpeg
  • 这种方式十分方便快捷好用!推荐使用!
  • 篇幅有限,不可能所有用法都演示一遍!有兴趣的小伙伴可以自行测试一遍!
  • 悄悄的说,反正我是全部试了一遍,还整合了Spring,加了拦截器测试了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值