真分頁 js+ajax+servlet完成,程式碼不懂部分可以留言及時回覆
分頁分為兩種,真分頁和假分頁
一種是將所有資料查詢出來,通過頁數幾條几條顯示,也就是 假分頁!
一種是根據頁數查詢幾條几條 這是真分頁
對比起來,假分頁一次性查詢所有資料,無疑是消耗記憶體特別多的,如果資料很多,緩衝區光被它自己的資料就佔滿了
所以,如果要實際使用,還是使用真分頁比較好,當然目前一些框架和外掛可以有現成的分頁工具,不過能夠自己做出一個原始碼分頁還是很有用的
使用java做分頁
1.準備eclipse,oracle做分頁,資料庫內容自備,配置一個servlet用來與ajax互動,所需要的連線資料庫的包匯入,我是用了GSON包所以匯入了,百度就可以搜尋下載
2.真分頁的思路:
.一個顯示五條資料的頁面,兩個點選前一頁後一頁的按鈕
開啟當前頁面,預設給後臺傳page=1,也就是第一頁,當點選後一頁時,將page加一傳遞,前一頁同理
後臺接收page,通過條件篩選查詢出所需要的第幾條到第幾條資料,包裝起來返回給前臺
前臺接收比解析資料,通過迴圈將資料加入table
3.程式碼實現:
開啟eclipse,建立一個index.jsp用來做測試頁面,裡面需要一個table和兩個button
開啟資料庫(我使用的是oracle),建立所需要的表emp,並傳入十幾到幾十條資料
建立java類
首先是Person類用來裝查詢結果
然後是查詢類與方法,根據輸入的引數page,查詢第min到第max行,並將查詢結果集裝入List<Person>型別物件進行返回
最後是與ajax互動的servlet,接收前臺的page,並將這個資料傳遞給Conn.read()方法,使其定向查詢page
寫一個傳送page和接受結果集的ajax,ajax的寫法不多贅述,只講一下table中的改變
如果已經查詢好五條資料,再點下一頁,無疑會將頁面資料變為了十條,那這樣就不是我們想要的結果,所以在每次查詢結果集列印之前需要將已經存在的table進行清空,清空table我們這使用了一個迴圈,使其保留table標籤而只刪除行,做到清空效果,然後遍歷查詢結果集將其拆分放入新建的tr td中
這是頁面預設啟用的ajax,傳遞page為1,故需要在<script>中開局設定一個全域性變數 var page = 1
粗略簡介,希望可以幫助到你,有任何疑問或建議可以下方留言評論,共同學習!