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>");