<%@ page contentType="text/html;charset=8859_1" %> <% //變量聲明 java.sql.Connection sqlCon; //數據庫連接對象 java.sql.Statement sqlStmt; //SQL語句對象 java.sql.ResultSet sqlRst; //結果集對象 java.lang.String strCon; //數據庫連接字符串 java.lang.String strSQL; //SQL語句 int intPageSize; //一頁顯示的記錄數 int intRowCount; //記錄總數 int intPageCount; //總頁數 int intPage; //待顯示頁碼 java.lang.String strPage; int i; //設置一頁顯示的記錄數 intPageSize = 2; //取得待顯示頁碼 strPage = request.getParameter("page"); if(strPage==null){//表明在QueryString中沒有page這一個參數,此時顯示第一頁數據 intPage = 1; } else{//將字符串轉換成整型 intPage = java.lang.Integer.parseInt(strPage); if(intPage<1) intPage = 1; } //裝載JDBC驅動程序 java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); //設置數據庫連接字符串 strCon = "jdbc:oracle:thin:@linux:1521:ora4cweb"; //連接數據庫 sqlCon = java.sql.DriverManager.getConnection(strCon,"hzq","hzq"); //創建一個可以滾動的只讀的SQL語句對象 sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); //準備SQL語句 strSQL = "select name,age from test"; //執行SQL語句并獲取結果集 sqlRst = sqlStmt.executeQuery(strSQL); //獲取記錄總數 sqlRst.last(); intRowCount = sqlRst.getRow(); //記算總頁數 intPageCount = (intRowCount+intPageSize-1) / intPageSize; //調整待顯示的頁碼 if(intPage>intPageCount) intPage = intPageCount; %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>JSP數據庫操作例程 - 數據分頁顯示 - JDBC 2.0 - Oracle</title> </head> <body> <table border="1" cellspacing="0" cellpadding="0"> <tr> <th>姓名</th> <th>年齡</th> </tr> <% if(intPageCount>0){ //將記錄指針定位到待顯示頁的第一條記錄上 sqlRst.absolute((intPage-1) * intPageSize + 1); //顯示數據 i = 0; while(i<intPageSize && !sqlRst.isAfterLast()){ %> <tr> <td><%=sqlRst.getString(1)%></td> <td><%=sqlRst.getString(2)%></td> </tr> <% sqlRst.next(); i++; } } %> </table> 第<%=intPage%>頁 共<%=intPageCount%>頁 <%if(intPage<intPageCount){%><a href="jdbc20-oracle.jsp?page=<%=intPage+1%>">下一頁</a><%}%> <%if(intPage>1){%><a href="jdbc20-oracle.jsp?page=<%=intPage-1%>">上一頁</a><%}%> </body> </html> <% //關閉結果集 sqlRst.close(); //關閉SQL語句對象 sqlStmt.close(); //關閉數據庫 sqlCon.close(); %>
|