我正在尝试通过以下方法获取结果集的行数:
rs.last();
int row_count = rs.getRow();
但我得到了一个Invalid operation for forward only resultset : last
错误。结果集从Oracle 10g数据库中获取其数据。
这是我设置连接的方法:
Class.forName("oracle.jdbc.driver.OracleDriver");
String connectionString = "jdbc:oracle:thin:@" + oracle_ip_address + ":" + oracle_db_port + ":" + oracle_db_sid;
Connection conn = DriverManager.getConnection(connectionString, oracle_db_username, oracle_db_password);
Statement statement = con.createStatement(resultSetType, resultSetConcurrency);
如cheeken所述,我们必须传递ResultSet.TYPE_SCROLL_INSENSITIVE
,但是除此之外,我们还必须传递另一个参数 - 请参考此处 -resultSetType为结果集类型;其中之一为ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE或ResultSet.TYPE_SCROLL_SENSITIVE resultSetConcurrency为并发类型;其中之一为ResultSet.CONCUR_READ_ONLY或ResultSet.CONCUR_UPDATABLE
。 - PareshStatement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE);
时,它显示“Connection中的createStatement()方法不适用于参数(int)”。 - Squareoot