jsp怎样实现分页? jsp怎样实现分页?请高手提示。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、oracle里有rownum,sqlsever有top2、可以通过记录游标的移动来取得。3、可以通过循环,如:// 参数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; } 可以在dao层进行分页,或写一个分页bean,将分页算法全部写在该bean内,jsp只需每次分页调用该bean。 GUI中“鼠标事件”问题,~~~~~求解~~~~~···· java中如何控制一个方法的最多执行时间? 请教FileWrite的问题,急 java 传参数问题??? 请问为什么数据库的float类型,用resultset取出后变样了呢 如何用Eclipse运行Java编程思想(Thinging in Java)程序? 如何通过列名获取表名?急切询问! **Help Help******读不出数据 再次提问关于类的问题; 在JAVA环境的JPanel中装载任意目录下的图形文件? SWT中没有title栏的shell如何实现拖动效果 java ip地址存入数据库的问题
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;
}