请教关于jdbc中得ResultSet得.next(),,,和absolute()得方法区别(救救我呀,要疯了) 我怀疑你的absolute的参数是不是有问题执行后没有next了?absolute的问题也遇到过代码完全一样人家的好用我得不好用的情况一般是分页这一种,每次过多少个数据的时候。现在也没搞清楚。一般都是自己写了个absolute方法来用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用absolute方法的那个类,在使用时出错信息是什么,程序看上去没有问题。 我这有个absulte和next一齐使用的例子,看看是否对你有用:Statement ss =null; ResultSet result =null; int rowCount ;//记录总数 int pageCount ;//总页数 if (conn == null){ returnValue ="不能获得数据库连接。"; return returnValue; } StringBuffer buffer = new StringBuffer(); try{ ss=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); result = ss.executeQuery(sql); //********************根据记录集获得页面总数等信息******** result.last(); rowCount = result.getRow();//获得记录总数 int tempRowCount =0; if(rowCount>1000){ tempRowCount = rowCount; rowCount = 1000; } //计算总页数 pageCount = (rowCount + pageSize-1)/pageSize; //调整待显示的页面 if(pageWait > pageCount) { pageWait = pageCount; } //********************************************************* if (pageCount < 1) { errorPage errPage = new errorPage(); returnValue = errPage.printErrorPage(); //get stringbuffer capacity int bb = buffer.capacity(); //delete stringbuffer buffer = buffer.delete(0,bb); result.close(); ss.close() ; return returnValue; } //*****将记录指针定位到待显示页的第一条记录上******** result.absolute((pageWait - 1) * pageSize +1); //显示数据 int i =0; while(i < pageSize && !result.isAfterLast()){ buffer.append("<tr>"); buffer.append("<td align='center'>" + ((pageWait-1) * pageSize + i +1) +"</td>"); buffer.append("<td><a href='/DetailWeb/PeopleDetail.jsp?criminal_no=" + result.getString("criminal_no") + "'>" + result.getString("criminal_name") + "</a></td>"); buffer.append(body+ "</td>"); buffer.append("</tr>"); result.next(); i++; } buffer.append("</table></div></td></tr>"); //print page//convert stringbuffer to string returnValue =buffer.toString(); } catch(Exception e){ e.printStackTrace(); if (result!=null) result.close(); } finally{ //get stringbuffer capacity int bb = buffer.capacity(); //delete stringbuffer buffer = buffer.delete(0,bb); } if (result!=null) result.close(); if (ss !=null) ss.close() ; return returnValue; 没有absolute的函数出错信息: 不允许的操作: Unsupported syntax for refreshRow()absolute得参数是对的,,,用for循环进行了改变Resultset的结果,不必使用next了 多线程问题 wait() notifyAll(); 出错 求Java初学者的一些练习题 关于“博客频道“我的2011”年度征文活动获奖名单公布” 举报!!!hahe7788用户倒分加剽窃!详情请见另一100分贴! 关于 java StdDraw library 一个简单问题 如何看待 thinking in java 已编译成功的程序为什么还会说“初始化错误”呢? 最新的jdk去那个地方下载呢谁能告诉我 想问一个问题,如何可以在本类中的一个方法访问到另一个方法的变量修改他 一个关于bean查询的问题 这样写有什么好处?
Statement ss =null;
ResultSet result =null;
int rowCount ;//记录总数
int pageCount ;//总页数
if (conn == null){
returnValue ="不能获得数据库连接。";
return returnValue;
} StringBuffer buffer = new StringBuffer();
try{
ss=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
result = ss.executeQuery(sql); //********************根据记录集获得页面总数等信息********
result.last();
rowCount = result.getRow();//获得记录总数
int tempRowCount =0;
if(rowCount>1000){
tempRowCount = rowCount;
rowCount = 1000;
}
//计算总页数
pageCount = (rowCount + pageSize-1)/pageSize;
//调整待显示的页面
if(pageWait > pageCount)
{
pageWait = pageCount;
}
//*********************************************************
if (pageCount < 1)
{
errorPage errPage = new errorPage();
returnValue = errPage.printErrorPage();
//get stringbuffer capacity
int bb = buffer.capacity();
//delete stringbuffer
buffer = buffer.delete(0,bb);
result.close();
ss.close() ;
return returnValue;
} //*****将记录指针定位到待显示页的第一条记录上********
result.absolute((pageWait - 1) * pageSize +1);
//显示数据
int i =0; while(i < pageSize && !result.isAfterLast()){
buffer.append("<tr>");
buffer.append("<td align='center'>" + ((pageWait-1) * pageSize + i +1) +"</td>");
buffer.append("<td><a href='/DetailWeb/PeopleDetail.jsp?criminal_no=" + result.getString("criminal_no") + "'>" + result.getString("criminal_name") + "</a></td>");
buffer.append(body+ "</td>");
buffer.append("</tr>");
result.next();
i++;
}
buffer.append("</table></div></td></tr>"); //print page
//convert stringbuffer to string
returnValue =buffer.toString();
} catch(Exception e){
e.printStackTrace();
if (result!=null) result.close();
}
finally{
//get stringbuffer capacity
int bb = buffer.capacity();
//delete stringbuffer
buffer = buffer.delete(0,bb);
}
if (result!=null) result.close();
if (ss !=null) ss.close() ;
return returnValue;
absolute得参数是对的,,,用for循环进行了改变Resultset的结果,不必使用next了