大家好,我是IT修真院上海分院第2期學(xué)員,一枚正直善良的java程序員,今天給大家分享一下,修真院java任務(wù)中的一個(gè)知識(shí)點(diǎn):怎么進(jìn)行分頁查詢,如何判斷是否有下一頁。
1.背景
網(wǎng)頁的排列方式一般有兩種,一種是一個(gè)頁面能把所有內(nèi)容顯示完,還有一種是不能再一個(gè)頁面中顯示全部內(nèi)容時(shí),就要用分頁來顯示。
2.什么是分頁
分頁是將所有數(shù)據(jù)分段展示給用戶的技術(shù),用戶看到的只是全部數(shù)據(jù)的其中一部分,用戶可以通過頁碼或是翻頁來進(jìn)行跳轉(zhuǎn),知道找到自己想看到的內(nèi)容。
3.在何處進(jìn)行分頁
可以進(jìn)行分頁處理的地方有:1客戶端,2服務(wù)器,3數(shù)據(jù)庫端。在客戶端進(jìn)行分頁,需要進(jìn)行傳輸?shù)臄?shù)據(jù)量很大,必然加大服務(wù)器的負(fù)載。在服務(wù)器端進(jìn)行分頁,大部分?jǐn)?shù)據(jù)還是會(huì)被傳輸?shù)椒?wù)器端。
所以,比較好的分頁做法應(yīng)該是每次翻頁的時(shí)候只從數(shù)據(jù)庫里檢索相應(yīng)頁面大小的數(shù)據(jù)。
4.具體實(shí)現(xiàn)
利用sql語句:selct * from table_name order by id desc limit ?,?? 將其寫入dao中,命令為list方法,之后可以進(jìn)行調(diào)用。
首先定義頁面顯示數(shù)量,int start=0;int count=5;將start和count作為參數(shù)傳入之前的sql語句中,就可以實(shí)現(xiàn)在頁面中顯示5條數(shù)據(jù)。
根據(jù)頁面提交的start,更新start的值,定義int next=start+count,然后把next傳遞給jsp文件,在jsp中增加超鏈<a herf="?start=${next}">[下一頁]</a>,將next的值傳遞給start。
定義int pre=start=count,然后將pre傳給jsp,在jsp中增加超鏈<a herf="?start=${pre}">[上一頁]</a>,將pre的值傳給start。
這樣,當(dāng)點(diǎn)擊相應(yīng)的超鏈時(shí),相應(yīng)的start值傳入控制器,然后執(zhí)行sql語句,就可以查詢出相應(yīng)的記錄,并顯示出來。