获得`ResultSet`大小的最佳方法

时间:2015-03-13 06:27:53

标签: java jdbc resultset

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

  1. 致电ResultSet.last(),然后致电ResultSet.getRow()
  2. 在使用ResultSet时使用next()进行迭代。
  3. 对任何给定的查询执行SELECT COUNT查询。
  4. 在每次查询后执行FOUND_ROWS()
  5. 将结果读入ArrayList,然后将其转换为数组。

1 个答案:

答案 0 :(得分:2)

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

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

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

最后,你应该真的重新考虑返回一个数组。 Java数组非常适合创建新的集合数据类型和高性能库,但是对于大多数业务目的,它们不如标准的Collections API。