java获取resultset返回行_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java获取resultset返回行

java获取resultset返回行

 2013/8/9 13:20:53  chenhua_1984  程序员俱乐部  我要评论(0)
  • 摘要:用JDBC(包括OracleJDBC扩展)时,没有直接的(即标准的)方法可以使用ResultSet或RowSet获得查询所返回的行数。但是可以通过很少几行代码使用ScrollableResultSet或CachedRowSet来获得此结果。以下列出了可以使用的不同方法的详细内容。一种方法是在实际查询前执行"SELECTCOUNT(*)..."。这意味着数据库引擎必须对相同的数据进行两次分析(一次用于计数,一次用于数据本身)。第二种方法使用JDBC2.0
  • 标签:Java

用 JDBC(包括 Oracle JDBC 扩展)时,没有直接的(即标准的)方法可以使用 ResultSet 或 RowSet 获得查询所返回的行数。但是可以通过很少几行代码使用?class="code">Scrollable ResultSet?或?Cached RowSet?来获得此结果。以下列出了可以使用的不同方法的详细内容。

  • 一种方法是在实际查询前执行?"SELECT COUNT(*)..."
    这意味着数据库引擎必须对相同的数据进行两次分析(一次用于计数,一次用于数据本身)。?

  • 第二种方法使用 JDBC 2.0:
    • 一种使用?Scrollable ResultSet
    • 另一种使用?Cached RowSet?与普通(不可滚动)ResultSet 的组合。

JDBC 方法允许我们获得查询的行数而不必扫描所有的行或执行单独的?SELECT COUNT(*)。移到?Scrollable ResultSet/Cached RowSet 的尾部并获取其位置(resultset.last()/cachedRowset.last()?和resultset.getRow()/cachedRowset.getRow()),即可完成所需的工作。RowSet 扩展了 ResultSet 接口,因此我们可以使用普通的 ResultSet(而不是可滚动的)。

使用 Scrollable ResultSet 的说明:

  • 如果 ResultSet 非常大,则?resultset.last()?有可能是非常费时的操作,因为它将使用服务器端的更多资源。因此,除非确实需要可滚动结果集,应避免使用这种方法。
  • Oracle JDBC 驱动程序将使用?resultset.getRow()?返回正确的计数。但是其他供应商的实现方法可能会由resultset.getRow()?返回零。

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

?

发表评论
用户名: 匿名