PageHelper 檢視原始碼

2021-09-02 15:36:48 字數 865 閱讀 6944

原始碼分析:

首先進入到分頁外掛程式***一步一步檢視原始碼,關鍵點在於這裡settotal

當你分頁的資料 超過總資料,正常我們寫sql 是返回空,但是通過外掛程式返回的是前面的資料。通過settotal 發現 pagesize 大於0 但是pages = (int) (total / pagesize + ((total % pagesize == 0) ? 0 : 1)); 算出後覆蓋我們之前的當前頁引數。導致查出的資料依然是前面的資料。

public void settotal(long total) 

if (pagesize > 0) else

//分頁合理化,針對不合理的頁碼自動處理

if ((reasonable != null && reasonable) && pagenum > pages)

}@override

public boolean aftercount(long count, object parameterobject, rowbounds rowbounds)

//pagesize < 0 的時候,不執行分頁查詢

//pagesize = 0 的時候,還需要執行後續查詢,但是不會分頁

if (page.getpagesize() < 0)

return count > 0;

}@override

public string getpagesql(string sql, page page, cachekey pagekey) else

pagekey.update(page.getpagesize());

return sqlbuilder.tostring();

}

String jdk原始碼檢視

string string共有15個建構函式 可以有string byte,char,stringbuffer,int string類使用了final修飾符 final類不能被繼承,因此final類的成員方法沒有機會被覆蓋,預設都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允...

opencv原始碼檢視

1 針對opencv自帶的函式 cv.h中宣告的函式 可直接選擇函式,右鍵轉到宣告 h檔案 或轉到定義 cpp檔案 2 source modules下的函式不能直接跳轉到定義,需要先編譯,此處用cmake編譯原始碼 a 安裝,官網中包括源 sources 需自己編譯 和二進位制檔案 已編譯好 此處選...

LinkedList原始碼檢視

繼承abstractsequentiallist,實現list deque介面.transient int size 0 transient nodefirst transient nodelast addall int index,collection 函式的功能 將指定 collection 中...