程序员的公众号:源1024,获取更多资料,无加密无套路!
最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等
获取方式: 关注公众号并回复 666 领取,更多内容持续奉上
MyBatis在数据库执行分页查询时,通常会使用分页插件来处理。分页插件能够根据不同的数据库,生成对应的分页查询语句,并将查询结果进行分页处理。
MyBatis分页原理:
-  
  数据库方言(Dialect):不同的数据库在分页查询语法上有所不同。MyBatis是通过数据库方言来支持相应的分页语法,生成对应的分页查询语句。Mysql用limit关键字,Oracle用ROWNUM关键字。 
-  
  分页参数:在查询时依赖分页参数,pageNum(页码)、pageSize(每页条数)。 
分页插件原理:
分页插件是一种扩展机制,它允许MyBatis在查询过程中,动态拼接分页参数,实现分页查询。
原理如下:
-  
  拦截器(Interceptor):分页插件实际上是MyBatis的一个拦截器,它可以在查询执行前或执行后进行拦截处理。 
-  
  处理分页逻辑:在查询之前,分页插件会检测是否有分页参数传入。如果有分页参数,插件会根据数据库方言生成对应的分页查询语句。 
-  
  修改查询参数:插件会修改查询的SQL语句,添加分页参数。 
-  
  执行查询:执行修改后的分页查询语句,得到查询结果。 
-  
  封装分页结果:插件会根据查询结果和分页参数,将查询结果进行分页处理,得到分页后的结果。 
系列文章索引
MyBatis的插件能在哪些地方进行拦截?
了解MyBatis的缓存机制吗
面试官:谈谈对volatile的理解
Spring中用到了哪些设计模式
面试官:说一下SQL的执行过程
线程池的工作原理
 














![[笔记] 使用 qemu/grub 模拟系统启动(单分区)](https://img-blog.csdnimg.cn/direct/8bed4119a5bb41d88abfb3eb64595186.png)
![[MySQL]SQL优化之索引的使用规则](https://img-blog.csdnimg.cn/direct/e2c760b4557b4a4a8e21990d2d14ac94.png)



