jsp通用的分页技术

package tool;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

import java.util.ArrayList;


public class PaginationBean {
 private int pageSize=4;//每页显示的记录条数
 private int pageNum=0;//总页数
 private int pageId=1;//当前页码
 private int size=0;//总记录条数
 public ArrayList pagination(int pageId,String sql){
  this.pageId=pageId;
  
  ResultSet rs=null;
  DBConnection dbcn=new DBConnection();
  dbcn.connect();
  rs=dbcn.select(sql);
  try {
   rs.last();//将记录移到最后一行
   size=rs.getRow();//取得行号,其实就是总记录数
   if(size%pageSize==0){
    this.pageNum=size/pageSize;
   }else{
    this.pageNum=size/pageSize+1;
   }
   rs.beforeFirst(); //返回第一条记录之前的位置
  } catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();
  }
  
  if(this.pageId<1)
   this.pageId=1;
  if(this.pageId>this.pageNum)
   this.pageId=this.pageNum;
  
  for(int i=0;i<(this.pageId-1)*pageSize;i++){//此循环的功能用于将记录定位在第pageId页之前的那条记录
   try {
    rs.next();
   } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
   }
  }
  ArrayList allData=new ArrayList();
  
  
  
  try {
   ResultSetMetaData rsmd=rs.getMetaData();
   int colnum=rsmd.getColumnCount();//取得列数
   
   for(int j=0;j<pageSize;j++){//此循环用于取得当前页的数据
    ArrayList al=new ArrayList();
    if(!rs.next()){
     break;
    }
    for(int n=1;n<=colnum;n++){
     al.add(rs.getString(n));
    }
    allData.add(al);
    
   }
   dbcn.connectionClose();
   return allData;
  } catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();
   return null;
  }
  
 }
 public int getPageNum(){
  return this.pageNum;
 }
 public int getSize(){
  return this.size;
 }
 public int getPageId() {
  return pageId;
 }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值