Mybatis的分頁插件PageHelper源碼解析和性能優化

一、Maven中引入依賴

二、代碼中分頁的使用


三、源碼分析

PageHelper.startPage(page,pageSize);
設置頁碼和每頁顯示的條數

查看源碼PageInterceptor類,實現了Interceptor接口

實現了Interceptor接口會重寫下面三個方法vue


定義了攔截器,攔截Executor的query方法ios

在執行如下查詢時,攔截器觸發
List<Map<String, Object>> list = detailMapper.findCourseCredits(studentCode);

咱們的分頁邏輯在intercept(Invocation invocation)方法,攔截器觸發會執行這個方法c++



先查詢總記錄數,而後查詢當頁記錄es6


四、性能優化

當查詢總的記錄數時會把全部的字段查詢出來,當數據量大的時候這樣會致使查詢速度很慢,正常咱們查詢總條數應該只用查詢一個主鍵字段就行,咱們查看源碼發現

這樣咱們再mapper中添加一個findCourseCredits_COUNT查詢

從新debug試試,此時查詢總記錄數就是按照咱們mapper中寫的web



相關文章
相關標籤/搜索