rs.last()对仅向前结果集给出无效操作:last

我正在尝试通过以下方式获取结果集的行数:

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);

回答:

ResultSet.last()和其他“绝对索引”查询操作仅在结果集 可滚动 时可用;否则,您只能在仅 转发 结果集中进行一个接一个的迭代。

以下示例(来自javadocs)演示了如何创建scrollable

ResultSet

Statement stmt = con.createStatement(

ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY

);

ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");

请记住,使用滚动查询会对性能产生影响。如果此特定目标ResultSet仅是获取其最后一个值,请考虑优化查询以仅返回该结果。

以上是 rs.last()对仅向前结果集给出无效操作:last 的全部内容, 来源链接: utcz.com/qa/410819.html

回到顶部