分页技术

来源:互联网 发布:官路淘宝 下载 编辑:程序博客网 时间:2024/05/18 00:35
分页处理的方法:
public ArrayList getResultByPage(int pageNow,int pageSize) {ArrayList al = new ArrayList();int rowCount = 0;try {ConnDB cd = new ConnDB();ct = cd.getConn();ps = ct.prepareStatement("select count(*) from users");rs = ps.executeQuery();//分页逻辑if(rs.next()) {rowCount = rs.getInt(1);} if(rowCount%pageSize==0) {pageCount = rowCount/pageSize;}else {pageCount = rowCount/pageSize+1;}ps = ct.prepareStatement("select * from users limit ?,?");//给?赋值ps.setInt(1, pageSize*(pageNow-1));ps.setInt(2, pageSize);rs = ps.executeQuery();while(rs.next()) {//将rs中的每条记录封装到Userean中UserBean ub = new UserBean();ub.setUserId(rs.getInt(1));ub.setUserName(rs.getString(2));ub.setPassword(rs.getString(3));ub.setEmail(rs.getString(4));ub.setGrade(rs.getInt(5));al.add(ub);}} catch (Exception e) {e.printStackTrace();} finally {this.close();}       return al;    }

                  客户端显示:

int pageSize = 3;int pageNow = 1;int i = 0;    String sPageNow = request.getParameter("pageNow");if(sPageNow!=null) {   //用户第一次登录   pageNow = Integer.parseInt(sPageNow);}//调用UserBeanClUserBeanCl ubc = new UserBeanCl();ArrayList al = ubc.getResultByPage(pageNow, pageSize);out.println("<table border=1>");out.println("<tr bgcolor=pink><th>用户编码</th><th>用户姓名</th><th>用户密码</th><th>email</th><th>用户级别</th><th>修改用户</th><th>删除用户</th></tr>");        String color[] = {"silver","pink"};for(i=0;i<al.size();i++) {        UserBean ub = (UserBean)al.get(i);        out.println("<tr bgcolor="+color[i%2]+">");        out.println("<td>"+ub.getUserId()+"</td>");        out.println("<td>"+ub.getUserName()+"</td>");        out.println("<td>"+ub.getPassword()+"</td>");        out.println("<td>"+ub.getEmail()+"</td>");        out.println("<td>"+ub.getGrade()+"</td>");        out.println("</tr>");}out.println("</table>");int pageCount = ubc.pageCount();if(pageNow!=1) {        out.println("<a href=wel?pageNow="+(pageNow-1)+">上一页</a>");}for(int j=pageNow;j<=pageNow+4;j++) {                    out.println("<a href=wel?pageNow="+j+">"+j+"</a>");           }if(pageNow!=pageCount) {        out.println("<a href=wel?pageNow="+(pageNow+1)+">下一页</a><br>");}//指定跳转到某一页//实际上是一个表单//问题:1:输入的数字过大,2:输入的不是数字   完善!out.println("<form action=wel>");out.println("<input type=text name=pageNow>");out.println("<input type=submit value=跳转>");       out.println("</form>");