利用結果集進行分頁
阿新 • • 發佈:2017-10-25
dex ges != 傳遞 from ont 鏈接 建數據庫 value
1.概述
數據的分頁顯示是Web程序的基本技術。通過簡單的超鏈接就可以實現數據在頁面上的分頁顯示。本實例是通過在頁面上輸入課程類型,查詢該類型的所有數據,然後再分頁顯示。
2.技術要點
本實例是使用結果集ResultSet將數據表中的記錄全部加載到結果集中,然後利用結果集的absolute()方法跳轉到指定的記錄,作為本頁的首記錄。通過在鏈接的地址中附加參數傳遞當前應顯示的頁碼。
3.具體實現
(1)創建數據庫操作類,定義構造方法UserDao()加載數據庫驅動,定義Connection()方法創建與數據庫的連接,定義selectStatic()方法執行查詢操作,定義closeConnection()方法關閉數據庫。詳細代碼請參考源碼,也可以查看實例“利用SQL語句實現分頁”的實現過程。
(2)創建index.jsp頁面。首先,通過JavaBean標簽調用數據可靠操作類UserDao,並定義在分頁輸出數據中使用的參數。
<%@page contentType="text/html" pageEncoding="GBK" import="java.sql.*,java.util.*,java.lang.*"%> <jsp:useBean id="selectall" scope="page" class="com.pkh.dao.UserDao"></jsp:useBean> <%! int CountPage = 0; int CurrPage = 1; int PageSize = 5; int CountRow = 0; %>
然後,根據傳遞的參數獲取當前顯示的頁碼,執行查詢結語句,獲取到結果集並定位顯示數據。
<% String StrPage = (String) request.getParameter("Page"); //獲取當前頁面 if (StrPage == null) { CurrPage = 1; } else{ CurrPage = Integer.parseInt(StrPage); } ResultSet Rs; //定義查詢結果集變量 String SQL; //定義SQL語句變量 if (v != null && !v.equals("")) { SQL = "Select * From tb_ClassList Where CType=‘" + v + "‘"; //編寫查詢語句 } else { SQL = "Select * From tb_ClassList"; } Rs = selectall.selectStatic(SQL); //執行查詢語句 Rs.last(); int i = 0; CountRow = Rs.getRow(); //獲取查詢結果集中字段數 CountPage = (CountRow / PageSize); //計算數據可以分成幾頁 if (CountRow % PageSize > 0) CountPage++; Rs.first(); //獲取第一條數據 if (CountRow > 0) { Rs.absolute(CurrPage * PageSize - PageSize + 1); //指定跳轉頁碼 while (i < PageSize && !Rs.isAfterLast()) { //循環輸出數據 %> <tr> <td align="center" nowrap bgcolor="#FFFFFF"><span class="style3"><%=Rs.getString("CID")%></span></td> </tr> <% Rs.next(); //執行下一條 i++; } selectall.closeConnection(); //關閉數據庫 } %>
最後,創建上一頁、下一頁和最後一頁超級鏈接,鏈接到index.jsp頁面,指定Page作為欄目標識,將頁數作為參數值。關鍵代碼如下:
<tr> <td width="251" height="30"> [<%=CurrPage%>/<%=CountPage%>] 每頁5條 共<%=CountRow%>條記錄 </td> <td width="260"><div align="right"> <% if (CurrPage > 1) { %> <a href="index.jsp?Page=<%=CurrPage - 1%>&Values=<%=v%>">上一頁</a> <% } %> <% if (CurrPage < CountPage) { %> <a href="index.jsp?Page=<%=CurrPage + 1%>&Values=<%=v%>">下一頁</a> <% } %> <a href="index.jsp?Page=<%=CountPage%>&Values=<%=v%>">最後一頁</a></div> </td> </tr>
利用結果集進行分頁