你的位置:首页 > Java教程

[Java教程]servlet实现分页技术


关键代码:

 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   //创建数据库url18   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   //计算rowCount28   if(rs.next()){29     rowCount = rs.getInt(1);30   }31   //计算pageCount32   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)。
使用一个自变量时,该值指定从结果集合的开头返回的行数。