获取 ResultSet 大小的最佳方法

Best Approach to get `ResultSet` size

在 Java 中获得 RestultSet 大小的最佳方法(速度)是什么,所以我可以将它们存储在 Array 中,我需要在创建之前指定它的大小,我已找到以下内容:

  1. 调用ResultSet.last(),然后调用ResultSet.getRow()
  2. 使用 next() 遍历 ResultSet,同时有一个计数器。
  3. 对任何给定查询执行 SELECT COUNT 查询。
  4. 每次查询后执行FOUND_ROWS()
  5. 将结果读入 ArrayList,然后将其转换为数组。

唯一的选择是#5:将数据放入 ArrayList 并使用 toArray 提取数组。

选项 #3 和 #4(额外查询)在速度方面不是一个好主意,因为无论您的数据库有多快,数据库查询都有固有的延迟。

选项 #1 和 #2 只是个坏主意; ResultSet 意味着在一个方向上迭代。虽然您 可以 将光标移动到其他方向,但大多数 JDBC 驱动程序执行此操作的效果不会太好。

最后,您应该真的重新考虑返回数组。 Java 数组非常适合创建新的集合数据类型和高性能库,但对于大多数商业用途而言,它们不如标准集合 API。