spring bootMysql

mybatis小知识-逻辑分页和物理分页

2019-04-27  本文已影响300人  小胖学编程

Mybatis的分页操作可以分为物理分页和逻辑分页。他们之间有什么区别呢?在什么场景下使用什么样的分页呢?

逻辑分页和物理分页的区别

1. Mybatis实现分页的方法

2. Mybatis使用pageHelper实现分页的原理

强烈推荐阅读——浅析pagehelper分页原理

<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper</artifactId>
   <version>4.1.6</version>
</dependency>
Pagehelper的使用

本质上两个知识点:

  1. 将pageNum和pageSize封装为page对象,保存在ThreadLocal中,实现线程间数据隔离。
  2. Pagehelper实现了Mybatis的Interceptor接口,调用拦截StatementHandler(Sql语法的构建处理)方法,按照物理库的不同重构SQL实现分页。

插件拦截的对象:

  1. Executor:拦截执行器的方法(log记录)
  2. StatementHandler:sql语法构建处理
  3. ParameterHandler:拦截参数的处理
  4. ResultSetHandler:拦截结果集的处理
上一篇下一篇

猜你喜欢

热点阅读