java.sql.SQLException: 对只转发结果集的无效操作: absolute beforeFirst

java.sql.SQLException: 对只转发结果集的无效操作: absolute beforeFirst
 java.sql.SQLException: 对只转发结果集的无效操作: absolute,beforefirst
按缺省方法打开的ResultSet,其Cursor type 为forward only,也就是说只能向后执行next(),执行到最后一条记录就结束了。

有两个方法解决:
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()方法。


从你说明的情况看,如果不是真正需要随机访问,采用第一种方法更合适。因为可滚动光标库相对于仅向前光标库来说,其开销是很大的。

 
 

你可能感兴趣的:(数据库技术)