您好,登錄后才能下訂單哦!
本篇文章為大家展示了利用Java怎么實(shí)現(xiàn)一個(gè)分頁(yè)查詢并顯示功能,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
sql語(yǔ)句大概形式為:
select * from table limit 開始索引,顯示條數(shù)
用該語(yǔ)句就會(huì)實(shí)現(xiàn)分塊查詢,并且每頁(yè)顯示固定條數(shù)。
首先要實(shí)現(xiàn)后臺(tái)分頁(yè),我們需要知道它有多少頁(yè),每頁(yè)有多少行,這就需要知道一共多少行,調(diào)用sql語(yǔ)句時(shí)還需要知道每一頁(yè)的開始索引,開始索引是根據(jù)當(dāng)前頁(yè)數(shù)算出來(lái)的,所以還需要知道當(dāng)前頁(yè)數(shù),查詢后會(huì)返回一個(gè)列表存儲(chǔ)當(dāng)前頁(yè)數(shù)據(jù)。將這些屬性及獲取設(shè)置的方法封裝成一個(gè)類就有了下面的page類:
Page類
public class Page<T> { private List<T> data;//數(shù)據(jù)列表 private int pagenum;//當(dāng)前頁(yè)數(shù) private int pagesize;//當(dāng)前頁(yè)顯示條數(shù) private int rows;//總行數(shù) public Page(int rows,int pagenum, int pagesize) { super(); data=new ArrayList<>(); this.rows=rows; this.setPagesize(pagesize); this.setPagenum(pagenum); } public Page() { super(); } public int getPagenum() { return pagenum; } public void setPagenum(int pagenum) { if(pagenum>getTotalpage()) { this.pagenum=getTotalpage(); } else { this.pagenum = pagenum; } if(pagenum<1) { this.pagenum=1; } } public int getPagesize() { return pagesize; } public void setPagesize(int pagesize) { this.pagesize = pagesize; } public int getTotalpage() { //計(jì)算總頁(yè)數(shù) if(rows%pagesize==0) { return rows/pagesize; } else { return rows/pagesize+1; } } public int getRows() { return rows; } public void setRows(int rows) { this.rows = rows; } public int getIndexnum() { //獲取索引值 return pagesize*(pagenum-1); } public List<T> getData() { return data; } public void setData(List<T> data) { this.data = data; } }
初始化時(shí)我們只需要獲得數(shù)據(jù)總條數(shù),頁(yè)數(shù)及每頁(yè)顯示條數(shù)。數(shù)據(jù)總條數(shù)可以用sql語(yǔ)句select count(*)from table 獲得。每次查詢時(shí)只需要傳入當(dāng)前頁(yè)數(shù)就可以了。將每次查詢后的page對(duì)象傳入jsp前臺(tái)頁(yè)面,并以一個(gè)div來(lái)顯示
顯示div
<div> <a href="/stuent8.11/stuServlet?pagenum=1" rel="external nofollow" >首頁(yè)</a> <a href="/stuent8.11/stuServlet?pagenum=${apage.pagenum-1 }" rel="external nofollow" >上一頁(yè)</a> <c:choose> <c:when test="${apage.totalpage<=5 }"> <c:set var="begin" value="1"></c:set> <c:set var="end" value="${apage.totalpage }"></c:set> </c:when> <c:when test="${apage.totalpage>5 }"> <c:set var="begin" value="1"></c:set> <c:set var="end" value="5"></c:set> <c:if test="${apage.pagenum>3 }"> <c:set var="begin" value="${apage.pagenum-2 }"></c:set> <c:set var="end" value="${apage.pagenum+2 }"></c:set> </c:if> <c:if test="${end>apage.totalpage }"> <c:set var="begin" value="${apage.totalpage-4 }"></c:set> <c:set var="end" value="${apage.totalpage }"></c:set> </c:if> </c:when> </c:choose> <c:forEach begin="${begin }" end="${end }" step="1" var="num"> <c:if test="${apage.pagenum==num }"> [${num }] </c:if> <c:if test="${apage.pagenum!=num }"> <a href="/stuent8.11/stuServlet?pagenum=${num }" rel="external nofollow" >${num }</a> </c:if> </c:forEach> <a href="/stuent8.11/stuServlet?pagenum=${apage.pagenum+1 }" rel="external nofollow" >下一頁(yè)</a> <a href="/stuent8.11/stuServlet?pagenum=${apage.totalpage }" rel="external nofollow" >末頁(yè)</a> </div>
其中的一個(gè)choose是用于規(guī)定頁(yè)面顯示的最大頁(yè)數(shù),這里是5頁(yè),就是說(shuō)當(dāng)點(diǎn)到第4頁(yè)是時(shí),第1頁(yè)就會(huì)消失,出現(xiàn)第6頁(yè)。
上述內(nèi)容就是利用Java怎么實(shí)現(xiàn)一個(gè)分頁(yè)查詢并顯示功能,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。