環境
<properties>
<java.version>1.8</java.version>
</properties>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
學習到Ibits主要類及描述
MappedStatement ,Executor
page :結果集返回類。我理解就是繼承自ArrayList然後加了些 頁碼、頁數、總條數等屬性。
學習到PageHelper 主要類、方法
PageInterceptor : 實現 Interceptor(ibits 攔截接口)。
startPage方法 : 自己跟代碼的入口。
大體流程
startPage 方法將limit所需參數設置到線程變量中(封裝到page實體),供PageInterceptor 攔截器使用。
count的實現
- 入口 :PageInterceptor.intercept 方法
- 構建count sql
- 執行count sql
limit 的實現
入口 :PageInterceptor.intercept 方法
- 構建 limit sql
- 設置參數 與執行 (方法名十分明確)
保存結果集
入口:
主要代碼