用 JDBC(包括 Oracle JDBC 扩展)时,没有直接的(即标准的)方法可以使用 ResultSet 或 RowSet 获得查询所返回的行数。但是可以通过很少几行代码使用?class="code">Scrollable ResultSet?或?Cached RowSet?来获得此结果。以下列出了可以使用的不同方法的详细内容。
JDBC 方法允许我们获得查询的行数而不必扫描所有的行或执行单独的?SELECT COUNT(*)。移到?Scrollable ResultSet/Cached RowSet 的尾部并获取其位置(resultset.last()/cachedRowset.last()?和resultset.getRow()/cachedRowset.getRow()),即可完成所需的工作。RowSet 扩展了 ResultSet 接口,因此我们可以使用普通的 ResultSet(而不是可滚动的)。
使用 Scrollable ResultSet 的说明:
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs.last(); int rowcount = rs.getRow();
?
?
使用 Oracle JDBC Cached RowSet
OracleCachedRowSet ocrs = new OracleCachedRowSet(); ocrs.populate(rs); ocrs.last(); int rowcount = ocrs.getRow(); if (ocrs != null) ocrs.close();
?