mybatis分页插件的原理:

mybatis分页插件的原理:

MyBatis分页插件的原理是在 SQL 执行前插入分页代码,生成对应的分页SQL,从而实现分页查询。具体而言,当使用MyBatis 进行具体而言,当使用 MyBatis 进行分页查询时,MyBatis 会通过拦截器的方式,在 SQL 执行前将分页参数(当前页、每页显示多少条数据等)注入到 SQL 语句中。这个过程是在 Executor 的 query 方法中完成的。在 query 方法中,MyBatis 会通过反射获取当前查询语句对应MappedStatement 对象,并将这个对象传递给拦截器,拦截器在处理前对 SQL 语句进行修改。

分页的基本方法是将地址空间等分成某一个固定大小的页;每一页大小由硬件来决定,或者是由操作系统来决定(如果硬件支持多种大小的页)。

  • 1.将进程的逻辑地址空间分成若干个大小相等的片,称为页面或页
  • 2.内存空间分成与页大小相等的若干个存储块,称为物理块或页框
  • 3.在为进程分配内存时,以块为单位,将进程中的若干页分别装入多个可以不相邻的块中

关于进程分页,当我们把进程的虚拟地址空间按页来分割,常用的数据和代码会被装载到内存;暂时没用到的是数据和代码则保存在磁盘中,需要用到的时候,再从磁盘中加载到内存中即可.\

第三步:需要将查询结果强制转换为Page类型

PageHepler.startPage()方法中的两个参数,分别是页码(page)、每页显示条数(pageSize)

注意:查看SQL日志,可以看到分页插件的实现也是使用limit关键字,所以千万不要再StuMapper对应的select查询语句后面加分号(;),因为分号表示SQL语句结束,此时插件再在后面附加limit限制语句就会报错。Mapper.xml文件中定义SQL语句片段,里面的SQL语句也不能加分号

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值