62,616
社区成员
发帖
与我相关
我的任务
分享
// 参数i是当前的页数 j 是每页的记录条数
private int getResult(ResultSet resultset, int i, int j)throws Exception
{
Object obj = null;
Object obj1 = null;
enumer = null; //用来保存数据,里面全是一个一个字符串数组封装的记录
rowStr = null; //没有用到过。。。可删除
vctr.clear();
hshtbl.clear();
rsColNum = 0;
rsRowNum = 0;
rsTotalRowNum = 0;
if(resultset == null)
return -1;
ResultSetMetaData resultsetmetadata;
resultsetmetadata = resultset.getMetaData();
if(resultsetmetadata == null)
return -1;
try
{
rsColNum = resultsetmetadata.getColumnCount(); //返回ResultSet中的列数
for(int k = 1; k <= (i - 1) * j && resultset.next(); k++) //让游标定位到第i页第一条数据之前
rsTotalRowNum++; //统计跨越了多少条记录
for(int l = 0; l < j && resultset.next(); l++) //只要数据足够,就取j条数据
{
String as[] = new String[rsColNum + 1]; //每一个字符串数据就封装了一条记录,索引从1....rsColNum
for(int j1 = 1; j1 <= rsColNum; j1++) //取出当前行的每一列数据
//并保存到String数组中.
{
as[j1] = resultset.getString(j1);
if(as[j1] == null) //注意null情况
as[j1] = new String(" "); //为空就保存为空串
}
vctr.add(as); //添加到Vector中去.
rsRowNum++; //每完成一行数据的装载就使当前标识行的数量加1
rsTotalRowNum++; //同时总行数也加1
}
while(resultset.next()) //所有记录条数统计完成
rsTotalRowNum++; //统计剩余的记录条数,完善总行数
enumer = vctr.elements(); //把数据放到枚举里
String as1[] = new String[rsColNum + 1]; //从1开始方便存取
for(int i1 = 1; i1 <= rsColNum; i1++)
{ //把所有的列名都保存在一个HashTable,大写形式.
as1[i1] = resultsetmetadata.getColumnName(i1).toUpperCase();
hshtbl.put(as1[i1], new Integer(i1));
}
return 0;
}
catch(Exception exception)
{
enumer = null;
}
return -1;
}