您的位置:首页 > Web前端 > JavaScript

jsp通用的分页技术

2010-06-12 21:41 148 查看
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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: