Mybits-PageHelper 源碼學習記錄

環境

  		<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
  • 執行count sql執行count語句

limit 的實現

入口 :PageInterceptor.intercept 方法

  • 構建 limit sql 構建limit sql
  • 設置參數 與執行 (方法名十分明確)執行limit sql

保存結果集

入口:入口代碼位置
主要代碼將結果集放入page實體

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章