分页功能

来源:互联网 发布:picasa for mac 编辑:程序博客网 时间:2024/06/05 17:50

分页功能

思路:

1.定义四个分页变量

pageNow     表示第几页             //该变量是由用户决定

pageSize         每页显示几条记录                 //每页显示几条记录,由程序指定

pageCount     共有多少页             //该变量是计算得出

rowCount        共有多少条记录            //查询数据库得出,不固定

2.如何确定pageNow

可以由用户点击确定,点击之后跳转到本页面,并且带参数pageNow,然后在开头获取pageNow

intpageNow=1;  //默认在第一页

String sPageNow=request.getParameter(“pageNow”);获取get提交的pageNow信息

if(sPageNow!=null){//不为空就赋值给pageNow

         pageNow=Integer.parseInt(sPageNow);

}

3.如何确定pageCount

(1)

         if(rowCount%pageSize==0){

                  pageCount=rowCount/pageSize;

         }else{

                  pageCount=rowCount/pageSize+1;

         }

(2)

等价于

pageCount=rowCount%pageSize==0?rowCount/pageSize:rowCount/pageSize+1;

 (3)

(3)更简单的算法是:

pageCount=(rowCount-1)/pageSize+1;

4.如何获取rowCount

//查询rowcount

//获取PreparedStatement对象

pstmt=con.prepareStatement(“selectcount(*) from t_admins”);

rs=pstmt.executeQuery();

rs.next();//不要忘了取下一个记录,否则rs指向空

rowCount=rs.getInt(1);//获取rowCount

5.分页操作核心代码

pstmt=con.prepareStatement(“selectt.* from (select * from t_admins order by id) t whereid>=”+(pageSize*(pageNow-1)+1)+” andid<=”+(pageSize*pageNow)+”;”); 

完整代码:

protected void doGet(HttpServletRequestrequest, HttpServletResponse response) throws ServletException, IOException {                  //TODO Auto-generated method stub                  PrintWriterout=response.getWriter();//获取输出流                  request.setCharacterEncoding("utf-8");//防止中文乱码                  response.setContentType("text/html;charset='utf-8'");                  intpageNow=1//表示第几页         /该变量是由用户决定                  String sPageNow=request.getParameter("pageNow");                  if(sPageNow!=null){                          pageNow=Integer.parseInt(sPageNow);                  }                  intpageSize=3;      //每页显示几条记录    每页显示几条记录,由程序指定                  introwCount;          //共有多少条记录                  intpageCount;                  //获取连接                  con=newUtil().getCon();                  try{                          //查询rowcount                          //获取PreparedStatement对象                          pstmt=con.prepareStatement("selectcount(*) from t_admins");                          rs=pstmt.executeQuery();                          rs.next();//不要忘了取下一个记录,否则rs指向空                          rowCount=rs.getInt(1);//获取rowCount                          //获取pageCount                          if(rowCount%pageSize==0){                                   pageCount=rowCount/pageSize;                          }else{                                   pageCount=rowCount/pageSize+1;    //共有多少页 该变量是计算得出                          }                          //获取PreparedStatement对象                          pstmt=con.prepareStatement(                                             "select  t.*  from "                                             + "(select * from t_admins order byid)   t "                                             + "whereid>="+(pageSize(pageNow-1)+1)+" and id<="+(pageSizepageNow)+";");                          //执行sql语句                          rs=pstmt.executeQuery();                          out.println("<imgsrc='imgs/MyLogo.gif'/>欢迎 XX 登录 返回主界面                <ahref='/studentSystem2/Login'>安全退出<hr/>");                          out.println("<h1>用户管理</h1>");                          out.println("<tableborder='1' width='500px'>");                           out.println("<tr><th>id</th><th>username</th><th>email</th><th>grade</th></tr>");                          while(rs.next()){                                   out.println("<tr><td>"+rs.getInt(1)+                                                     "</td><td>"+rs.getString(2)+                                                     "</td><td>"+rs.getString(4)+                                                     "</td><td>"+rs.getInt(5)+                                                     "</td></tr>");                          }                          out.println("</table>");                          for(inti=1;i<=pageCount;i++){                                   out.println("<ahref='/studentSystem2/ManageUsers?pageNow="+i+"'><"+i+"></a>");                          }                          out.println("<hr/><imgsrc='imgs/MyLogo1.gif'/>");                  }catch (SQLException e) {                          //TODO Auto-generated catch block                          e.printStackTrace();                  }                  }
0 0