思路:得到整个记录的count,除以每页的size(如20),得到页面总数,再得到当前页面数,当前页面*size计算出来当前应开始显示的记录数,移动数据集的指针,显示之……到页面size后,over.

解决方案 »

  1.   

    <%@ page contentType="text/html; charset=GBK"%>
    <%@ page import="java.sql.*"%>
    <%
      int pagesize=2;//每页显示记录数
      int recordcount=0;//记录总数
      int pagecount=0;//总页数
      int pageid=1;//待显页码
      Connection conn=null;
      try{
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      conn=DriverManager.getConnection("jdbc:odbc:jspguest","sa","sa");
      Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
      //String name=request.getParameter("name");
      //String pwd=request.getParameter("pwd");
      //String sql="select * from system where adminname like '%"+name+"%' and name like '%"+pwd+"%' order by user_id desc";
      String sql="select * from message";
      ResultSet rs=stmt.executeQuery(sql);
      rs.last();
      recordcount=rs.getRow();//取得总记录数
      pagecount=(recordcount%pagesize==0?(recordcount/pagesize):(recordcount/pagesize)+1);//取得总页数
      int count=1;
      String strpage=request.getParameter("pageid");
      if(strpage==null) pageid=1;
      else pageid=Integer.parseInt(strpage);
      if(pageid>recordcount) pageid=recordcount;
      if(recordcount>0){
      rs.absolute((pageid-1)*pagesize+1);}
      int i=0;
      //rs.previous();
      rs.beforeFirst();
      while(rs.next()&&count<=pagesize){
      count++;
      i++;
         out.print(rs.getString("name"));
     out.print("||");
     out.print(rs.getString("title"));
     out.print("<br/>");
       
       }
       out.print("共");
       out.print(pagecount);
       out.print("页");
       
       out.print("共");
       out.print(recordcount);
       out.print("条");
       
       out.print("第");
       out.print(pageid);
       out.print("页");
       
       out.print("<br/>");
       if(pageid<pagecount){
       out.print("<a href=del.jsp?pageid=");
       out.print(pageid+1);
       out.print(">下一页</a>");}
       if(pageid>1){
       out.print("<a href=del.jsp?pageid=");
       out.print(pageid-1);
       out.print(">上一页</a>");}
       out.print("<br/>");
       for(int j=1;j<=pagecount;j++){
       out.print("<a href=del.jsp?pageid=");
       out.print(j);
       out.print(">");
       out.print(j);
       out.print("</a>");}
       stmt.close();
      conn.close();
      }
      catch(ClassNotFoundException e){
        out.println(e.getMessage());
    }
    catch(SQLException e) {
    out.println(e.getMessage());
    }
    finally{
     try{
      if(conn != null)
       conn.close();
       }
       catch(Exception e){}
      }
      %>