思路:定义四个变量
pageNow:表示第几页,改变了是有用户决定的,因此是变化的
pageCount:共有多少页,该变量使计算出来的
pageSize:每页显示多少记录,有程序指定,也可以由用户指定
rowCount:共有多少条记录
如何确定pageCount
(1)if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}
等价于:
pageCount=rowCount%pageSize==0?rowCount/pageSize:rowCount/pageSize+1;
或者
pageCount=(rowCount-1)/pageSize+1;
案例 ManageUsers.java
//从数据库中取出数据 //到数据库中去验证 Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; //分页定义变量 int pageNow=1;//当前页 //接受用户的pageNow String spageNow=request.getParameter("pageNow"); if(spageNow!=null){ pageNow=Integer.parseInt(spageNow); } int pageSize=3;//指定显示3条记录 int pageCount=1;//该值是计算出来的 int rowCount=1;//该共有多少记录,数据库计算出来的 try{ //1加载驱动 Class.forName("com.mysql.jdbc.Driver"); //2.得到连接 conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/user", "root", "123456"); //算出共有多少页 //1.查询rowcount String sql1 ="select count(*) from user"; ps = conn.prepareStatement(sql1); rs=ps.executeQuery(); rs.next(); rowCount=rs.getInt(1); pageCount=rowCount%pageSize==0?rowCount/pageSize:rowCount/pageSize+1; //3.创建PrepareSatement //请大家思考,如果条件是pageNow=2,pageSize=3 String sql = "select t.* from (select * from user order by id) t limit "+(pageNow-1)*pageSize+","+pageSize+""; //执行操作 ps = conn.prepareStatement(sql); rs=ps.executeQuery(); out.println("<table border=1px bordercolor=green 0 width=500px>"); out.println("<tr><th>ID</th><th>用户名</th><th>密码</th></tr>"); while(rs.next()){ out.println("<tr><td>"+rs.getInt(1)+ "</td><td>"+rs.getString(2)+ "</td><td>"+rs.getString(3)+ "</td></tr>"); } out.println("</table>"); //显示上一页 if(pageNow!=1){ out.println("<a href=‘/LoginServlet/ManageUsers?pageNow="+(pageNow-1)+"‘>上一页</a>"); } //显示分页 for(int i=1;i<=pageCount;i++){ out.println("<a href=‘/LoginServlet/ManageUsers?pageNow="+i+"‘><"+i+"></a>"); } //显示上一页 if(pageNow!=pageCount){ out.println("<a href=‘/LoginServlet/ManageUsers?pageNow="+(pageNow+1)+"‘>下一页</a>"); } //显示分页信息 out.println(" 当前页"+pageNow+"/总页数"+pageCount+"<br>"); out.println("跳转到<input type=‘text‘ id=‘pageNow‘ name=‘pageNow‘><input type=‘button‘ onClick=‘gotoPageNow()‘ value=‘跳‘/>"); }catch(Exception e){ }finally{ if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } }
时间: 2024-12-16 04:23:46