有效且快速地将java.sql.ResultSet转换为String Array或ArrayList?

时间:2013-07-23 20:49:44

标签: java sql resultset

我有一个java.sql.ResultSet并调用next()迭代元素(列)是我的代码中的主要性能命中,我知道由于内存/缓存原因,连续数组会更快(ArrayList是连续的,因为我只分配一次而不在其上调用add())。

我已经看到了各种方法,但没有一种方法可行。我不想使用for循环迭代元素,因为那将调用next(),我正在努力避免。我的ResultSet中有很多元素,所以有没有办法将RS转换为数组或ArrayList?

2 个答案:

答案 0 :(得分:0)

不,没有别的办法。问题不在于您使用.next()调用,问题是数据库速度慢。您可能需要对数据库和/或jdbc连接执行一些优化,但是您需要提供有关实际用例的更多详细信息。

答案 1 :(得分:0)

除了通过调用ResultSet之外,无法从next()检索行。

在您提出要求之前,底层实现可能无法实现给定行,这可能涉及网络流量。一个合理的实现将批量获取行并缓存它们直到你要求它们,但它肯定不会立即获取所有行,除非结果集很小。