在java中,翻页比较头疼,下面是我写的一个实现翻页功能的类
请高手指正。
我的体会:
优点:简单好用
缺点:一次就从数据库中读出了所有的信息。不知如何改进,请指教
public class selectPage implements java.io.Serializable{ //我的翻页类
private int pageRecord; //分页单位=10
private int currentPage; //当前页=1
private ArrayList allInfo; // 记录集
private int allRow; //数据表总记录数=0
private int pages; //总页数=0
public selectPage(ArrayList list) {
this.allInfo = list;
this.pageRecord = 10;
this.currentPage = 1;
this.allRow = list.size();
this.pages = allRow/10;
if(allRow%10!=0)this.pages++;
}
public void setPageRecord(int pgrecord){
pageRecord = pgrecord;
}
public void setPages(){ //根据pageRecord改变总页
int p = allRow/pageRecord;
if(allRow%pageRecord!=0)p++;
this.pages = p;
}
public void setCurrentPage(int curpage){
currentPage = curpage;
}
public int getPageRecord(){
return pageRecord;
}
public int getPages(){
return pages;
}
public int getCurrentPage(){
return currentPage;
}
public int getAllRow(){
return allRow;
}
public ArrayList getPage(){
ArrayList tempList = new ArrayList();
int endindex = pageRecord*currentPage > allRow? allRow:pageRecord*currentPage;
for(int i=pageRecord*(currentPage-1);i<endindex;i++){
tempList.add(allInfo.get(i));
}
return tempList;
}
public String toString(){
String tempStr = "pageRecord="+this.getPageRecord()+"currentPage="+this.getCurrentPage()+"allRow="+this.getAllRow()+"pages="+this.getPages();
return tempStr;
}
}