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;
}
}