三年经验,这个问题该怎么回答,Mybatis是如何进行分页的?| Java面试

励志当最强课代表的我来给大家总结总结👍👍👍
三年经验,这个问题该怎么回答,Mybatis是如何进行分页的?
视频内容:
1️⃣引言✍️
2️⃣考察目标📄
3️⃣问题解析🏷️
4️⃣高手的回答📑
5️⃣总结🔖
视频内容:
1️⃣引言✍️
my babies 是如何进行分页的?下面来分析一下对于这样一个问题,面试官的考察意图以及我们应该怎么样去回答。
00:01

2️⃣考察目标📄
my basis 是 Java 应用开发的基础框架,而分页又是我们时时都在使用的功能。
所以在我看来,一方面考察的是求职者对于 my business 框架的一个使用能力,另外一个方面以此为切入点,去深度挖掘 mybasis 里面更多的一些问题,从而去了解求职者理解。
00:36

3️⃣问题解析🏷️
第一个是逻辑分页,先查询出所有的数据缓存的内存里面,再根据业务相关的一些需求,从内存的数据里面去筛选出合适的数据进行分页。
第二个是物理分页,直接利用数据库里面所支持的分页语法来实现。
第一种,在 mybetas mapper 配置文件里面直接去写分页的 seq 这种方式比较灵活,实现起来也比较简单。
第二种,可以通过 row bounders 去实现逻辑分页,也就是一次性加载所有符合查询条件的目标数据,根据分页参数的值在内存里面去实现分页。
第三种是通过 interceptor 拦截器来实现,可以通过拦截需要分页的 select 语句,然后在这个 select 语句里面去动态拼接分页的关键字,从而去实现分页查询。
01:04

4️⃣高手的回答📑
这种方式的好处就是可以提供统一的处理机制,不需要再单独去维护分页相关的一些功能。
03:23

5️⃣总结🔖
总结一下对于任何的 oim 框架,分页的时间逻辑无外乎两种,不管怎么包装,最终给到开发者的只是使用上的一个差异而已。
03:50
