Mybatis如何进行分页的

Mybatis如何进行分页的

Mybatis是Java应用开发的基础框架,而分页是我们时时都在使用的功能,一般我们可以把分页分为两种:

  • 逻辑分页。先查询出所有的数据缓存到内存里,再根据业务相关的一些需求,从内存的数据里面去筛选出合适的数据进行分页
  • 物理分页。直接利用数据库里面支持的语法进行分页,比如Mysql里面提供了分页相关的关键词limit

Mybatis里面提供了三种分页方式:

  • 在Mybatis Mapper配置文件里面,直接去写分页的SQL。这种方式比较灵活,实现也比较简单。直接在select语句上增加数据库提供的分页关键字,然后在应用程序里面提供当前页,以及每页展示的条数即可
  • 通过RowBounds去实现逻辑分页,也就是一次性去加载所有符合查询条件的目标数据,根据分页参数的值,在内存里面去实现分页。当然在数据量比较大的情况,JDBC驱动本身会做一些优化,也就是说不会把所有的结果一次性查询存储在ResultSet里面,而是先只加载一部分数据,然后再根据需求去数据库里面加载。这种方式不适合数据量较大的场景,而且可能会频繁访问数据库造成较大的压力
  • 通过Interceptor拦截器实现,通过拦截分页的select语句,然后在这个select语句里面去动态拼接分页的关键字,从而去实现分页查询。Intercetor是Mybatis里面提供的一种针对于不同生命周期的拦截器,比如:拦截执行器方法、拦截参数的处理、拦截结果集的处理、拦截SQL语法构建的处理,我们可以拦截不同阶段的处理,来实现Mybatis里面相关功能的扩展。好处就是可以提供统一的处理机制,不需要我们在单独去维护分页的相关的一些功能,PageHelper、Myabtis-Plus、tkmybatis这些框架,本质上都是通过Mybatis拦截器进行的扩展,去帮我们去实现了分页的封装,让我们不需要去关心分页相关的一些配置,节省了开发时间

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值