Java基礎 JSP分頁顯示

2021-08-16 07:42:41 字數 1502 閱讀 1710

分頁是web應用程式非常重要的乙個技術。資料庫中的資料可能是成千上萬的,不可能把這麼多的資料一次顯示在瀏覽器上面。一般根據每行資料在頁面上所佔的空間每頁顯示若干行,比如一般20行是乙個比較理想的顯示狀態。

分頁技術的實現

目前分頁技術實現有很多種,一種是將所有查詢結果都儲存在session物件中,翻頁的時候從session物件中取出一頁所需顯示的資料並顯示。這種做法有兩個缺點:一是使用者看到的可能是過期的資料,二是如果資料量非常大,獲取結果集的時間會很長,而且這個結果集也會儲存在記憶體中,占用大量的記憶體空間。

現在流行的分頁做法是在每次翻頁時,只從資料庫裡獲取出本頁所需的資料。這樣雖然每次翻頁都需要查詢資料庫,對資料庫的查詢次數增多了,但是查詢出來的結果集比較小,網路傳輸量低,使用者能很快的看到查詢結果,在配以資料庫連線池技術,效率會有很大的提高。下面是以oracle作為後台資料庫,介紹實現如何分頁顯示資料。另外提醒大家,不同的資料庫廠商支援分頁技術時所使用的sql語句也不一樣,oracle使用rownum關鍵字,mysql使用limit關鍵字,而sql server使用top關鍵字

下面將使用rownum關鍵字編寫實現分頁的sql語句,具體的sql語句如下所示:

selet employee_id, last_name,hire_date from(

select rownum as m,t * form(

select*from emplyees order

by hire_date desc

) t where rownum <= 20

)where m >10

分析該sql語句,由里到外,它是由三層查詢組成的,具體分析如下:

select*from employees order

by hire_date desc

執行結果是將雇員資訊表中的所有復原按僱傭日期降序排列

select rownum as m,t.*from(最內層查詢結果) t where rownum <=20

從中間層查詢開始使用rownum關鍵字進行分頁處理,這天語句實在最內層查詢結果的基礎上,按照rownum 行數的順序取出前20條記錄,實際上中間層的查詢是為了設定查詢結果的最大記錄數,注意,中間層查詢需要查詢出rownum偽列並設定別名(m),這是為了在最外層查詢時使用。

select employee_id,last_name,hire_date from(中間層查詢結果) where m >10

在最外層查詢中,通過對中間層查詢結果中別名為m的字段的限制,設定了最小記錄數。整個sql語句的目的是查詢出按僱傭日期倒序排列的第11行到20行的資料。

確定每頁顯示記錄數—–pagesize

計算總頁數—–totalpages

獲取當前頁數

執行分頁查詢sql語句,獲取結果集,並顯示資訊

完成分頁導航鏈結

經典的jsp分頁顯示

page contenttype text html charset gb2312 page language j a import j a.sql.script language j ascript function newwin url script script language j ascr...

java分頁 jsp 結合實現

page contenttype text vnd.wap.wml charset utf 8 page import cn.sowap.dbclass include file inc header.jsp string sid request.getparameter sid null?requ...

java的分頁顯示

實現原理很簡單,就是建立乙個page類,裡面放當前訪問的頁數 這個是從客戶瀏覽器傳到後台的資料,所以你的分頁需要用它來定位記錄的條目 和每一頁顯示的記錄行數。然後通過分頁計算就可以得出下列資料。假定你的頁數從1開始 1 總頁數 總記錄數 每頁大小,如果0 總記錄數 每頁大小,那麼總頁數再 12 當前...