JDBC分頁查詢及實現
阿新 • • 發佈:2018-11-29
當資料過多時,一頁之內是無法顯示的,因此需要進行分頁顯示。
(一)分頁技術實現:
物理分頁:
- 在資料庫執行查詢時(實現分頁查詢),查詢需要的資料—-依賴資料庫的SQL語句
- 在sql查詢時,從資料庫只檢索分頁需要的資料
- 通常不同的資料庫有著不同的物理分頁語句
- 物理分頁:Mysql/SQL Server/Oracle,每種資料數的寫法是不同的
- mysql物理分頁,採用limit關鍵字,SQL Server採用top,Oracle採用rowNum
- 例如,檢索11-20條:注意,索引從0開始,第一個10代表第11條,上述語句的含義是查詢第11條到第20條
邏輯分頁:
- 先查詢所有資料到記憶體,再從記憶體擷取需要的資料—-採用程式內部邏輯(先都查出來,再進行選擇)
- 在sql查詢時,先從資料庫檢索出所有資料的結果集
- 在程式內,通過邏輯語句獲得分頁需要的資料
- 例如,檢索11-20條:
- ResultSet是JDBC API中封裝的查詢結果集物件,通過該物件可以實現資料的分頁顯示。武漢英語培訓班通過ResultSet的游標實現分頁,優點是在各種資料庫上通用,缺點是佔用大量資源,不適合資料量大的情況。(由於ResultSet分頁存在效能方面的缺陷,在實際開發中,很多情況都是採用資料庫提供的分頁機制來實現分頁查詢功能)
(二)例項
通過MySQL資料庫提供的分頁機制,實現商品資訊的分頁查詢功能,將分頁資料顯示在JSP頁面
(1)JavaBean:用於封裝商品資訊
由於每頁記錄數一般不會修改,因此將其定義為final型別(靜態的final型別變數,通常情況下我們大寫)。
按照DAO模式,接下來我們分別編寫資料層和業務層
(2)建立名稱為BookDao的類,用於封裝資料庫相關操作。
(3)建立FindServlet類,實現獲取分頁查詢結果及構造分頁條物件。其中獲取分頁查詢結果,通過呼叫BookDao類中的find()方法,雅思作文思路並傳遞所要查詢的頁碼就可以獲取;分頁條物件是JSP頁面中的分頁條,用於顯示商品資訊的頁碼,程式中主要通過建立頁碼的超連結,然後組合字串進行構造:
(4)web層進行顯示
主介面:
商品顯示介面: