分頁技術原理與實現(二)——Java+Oracle代碼實現

分頁技術原理與實現(二)——Java+Oracle代碼實現

  緊接着上篇—分頁技術原理與實現()——爲什麼要進行分頁及怎麼分頁,本篇繼續分析分頁技術。上篇講的是分頁技術的簡單原理與介紹,這篇深入分析一下分頁技術的代碼實現。

  上篇最後講到了分頁的最佳實現是在數據庫層進行分頁,而且不同的數據庫有不同的分頁實現,比如Oracle是用三層sql嵌套實現分頁的、MySql是用limit關鍵字實現的(上篇已講到)

  這篇以Java+Oracle爲基礎,講解代碼層的實現。

  就如平時我們很在分頁中看到的,分頁的時候返回的不僅包括查詢的結果集(List),而且還包括總的頁數(pageNum)、當前第幾頁(pageNo)等等信息,所以我們封裝一個查詢結果PageModel,代碼如下:

 

 

  其中使用泛型是爲了能使的該分頁類能進行重用,比如在查詢用戶時可以封裝User對象、在查詢財務中的流向單時可以封裝流向單FlowCard類。

 

  我們以查詢用戶爲例,用戶選擇查詢條件,首先調用Servlet獲取查詢參數,然後請求業務邏輯層取得分頁封裝結果類。業務邏輯調用Dao層取得結果集、取得中記錄數封裝成分頁類。最後Servlet將結果設置到jsp頁面顯示。

  首先來講解Servlet,代碼如下:

 

 

其中User對象代碼如下:

 

接着是業務邏輯層代碼,代碼如下:

 

其中DBUtility爲數據庫的連接封裝類。

最後是Dao層代碼實現,代碼如下:

 

 

最後就是servlet將得到的結果返回給jsp頁面顯示出來。

注:其中DBUtility代碼是封裝數據庫連接操作的代碼,如下:

 

使用ThreadLocal是爲了保證事務的一致,使得同一個線程的所有數據庫操作使用同一個Connection

到此一個簡單的代碼實現就完成了。

 

 

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