-1

我有一个 java.sql.ResultSet 并调用 next() 来迭代元素(列)是我代码中的主要性能损失,而且我知道由于内存/缓存原因(ArrayList将是连续的,因为我只分配一次并且不调用 add() )。

我见过各种铸造它的方法,但都没有奏效。我不想使用 for 循环来迭代元素,因为那会调用 next(),这是我试图避免的。我的 ResultSet 中有很多元素,那么有没有办法将 RS 转换为数组或 ArrayList?

4

2 回答 2

0

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

于 2013-07-23T20:58:23.357 回答
0

ResultSet除了调用之外,没有其他方法可以从 a 检索行next()

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

于 2013-07-23T20:59:16.133 回答