分页技术

分页处理的方法:
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);
}
//调用UserBeanCl
UserBeanCl 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>");



 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值