我得到了一个结果集result。根据需要调用了结果集的result.next()方法,处理完这个结果集之后还要对这个结果集进行另外的处理,也就是说还要调用一次result.next()方法。但这时此结果集的指针已经在最后一条记录了。怎样才能把指针再移动到第一条记录?我用了result.absolute(1)方法。提示“对只转发结果集的无效操作: absolute”错误。请问各位高手有什么好的办法吗?
调试欢乐多
1。
重新打开ResultSet,也就再一次执行executeQuery(),这时cursor又回到开头,可以再次执行next();
2。
指定按可滚动的方式打开ResultSet:
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(...);
按上面的方式打开的ResultSet,Cursor type为scrollable,可以调用absolute()方法。
从你说明的情况看,如果不是真正需要随机访问,采用第一种方法更合适。因为可滚动光标库相对于仅向前光标库来说,其开销是很大的。