關鍵代碼:
1 //==========================分頁的功能============================== 2 int pageSize = 3; 3 int pageNow = 1; 4 int rowCount = 0; 5 int pageCount = 0; 6 String sPageNow = request.getParameter("pageNow"); 7 if(sPageNow != null){ 8 pageNow = Integer.parseInt(sPageNow); 9 } 10 Connection con = null; 11 java.sql.PreparedStatement ps = null; 12 ResultSet rs = null; 13 try { 14 //加載驅動程序 15 Class.forName("com.mysql.jdbc.Driver"); 16 17 //創建數據庫url 18 String url = "jdbc:mysql://localhost:3307/spdb?useSSL=false"; 19 String user = "root"; 20 String password = "root"; 21 22 //建立連接 23 con = DriverManager.getConnection(url,user,password); 24 //查詢,並返回結果 25 ps = con.prepareStatement("select count(*) from users"); 26 rs = ps.executeQuery(); 27 //計算rowCount 28 if(rs.next()){ 29 rowCount = rs.getInt(1); 30 } 31 //計算pageCount 32 if(rowCount%pageSize == 0){ 33 pageCount = rowCount/pageSize; 34 }else{ 35 pageCount = rowCount/pageSize+1; 36 } 37 //查詢,並返回結果 38 ps = con.prepareStatement("select * from users limit "+(pageSize*(pageNow-1))+","+pageSize); 39 rs = ps.executeQuery(); 40 //以表格形式 顯示返回的數據 41 out.println("<table border=1>"); 42 out.println("<tr><th>id</th><th>name</th><th>passwd</th><th>mail</th><th>grade</th></tr>"); 43 while(rs.next()){ 44 out.println("<tr>"); 45 out.println("<td>"+rs.getInt(1)+"</td>"); 46 out.println("<td>"+rs.getString(2)+"</td>"); 47 out.println("<td>"+rs.getString(3)+"</td>"); 48 out.println("<td>"+rs.getString(4)+"</td>"); 49 out.println("<td>"+rs.getInt(5)+"</td>"); 50 out.println("</tr>"); 51 } 52 out.println("</table>"); 53 //底部的頁碼超鏈接 54 if(pageNow != 1){ 55 out.println("<a href=MainFrame?pageNow="+(pageNow-1)+">上一頁</a>"); 56 } 57 for(int i=pageNow; i<=pageNow+pageSize; i++){ 58 if(i <= pageCount){ 59 out.println("<a href=MainFrame?pageNow="+i+">"+i+"</a>"); 60 } 61 } 62 if(pageNow != pageCount){ 63 out.println("<a href=MainFrame?pageNow="+(pageNow+1)+">下一頁</a>"); 64 }
效果截圖:
注意:
LIMIT子句可以被用於限制被SELECT語句返回的行數。
LIMIT取一個或兩個數字自變量,自變量必須是非負的整數常數(當使用已預備的語句時除外)。 使用兩個自變量時,第一個自變量指定返回的第一行的偏移量,第二個自變量指定返回的行數的最大值。初始行的偏移量為0(不是1)。 使用一個自變量時,該值指定從結果集合的開頭返回的行數。