分頁技術

分頁處理的方法:
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>");



 

發佈了28 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章