Java 什么是关闭ResultSet的正确时间

Java 什么是关闭ResultSet的正确时间,java,performance,memory,jdbc,resultset,Java,Performance,Memory,Jdbc,Resultset,我有一个JavaResultSet,其中包含大量数据(但仍可能存储在RAM中),可以从数据库中检索到。我将处理这些数据。从性能的角度来看,我应该将结果集内容复制到某个数据结构中,以便尽快关闭结果集并使用新容器中的数据,还是最好不要浪费时间复制内容并直接使用结果集中的数据?ResultSet的一次获取指定数量的行,取决于所使用的JDBC驱动程序和数据库。因此,如果您的查询返回了一百万行,那么并非所有一百万行都驻留在内存中,除非您迭代结果集并将它们放入内存中。要直接回答问题,请在完成所需行的读取后关

我有一个Java
ResultSet
,其中包含大量数据(但仍可能存储在RAM中),可以从数据库中检索到。我将处理这些数据。从性能的角度来看,我应该将结果集内容复制到某个数据结构中,以便尽快关闭结果集并使用新容器中的数据,还是最好不要浪费时间复制内容并直接使用结果集中的数据?

ResultSet的一次获取指定数量的行,取决于所使用的JDBC驱动程序和数据库。因此,如果您的查询返回了一百万行,那么并非所有一百万行都驻留在内存中,除非您迭代结果集并将它们放入内存中。要直接回答问题,请在完成所需行的读取后关闭ResultSet,通常是在ResultSet.next()返回false时


从性能角度来看,您必须至少阅读一次结果。如果您需要多次遍历它,那么复制可能会更快。谢谢,因为检索到的数据很大,但仍然可以完全存储在RAM中。它不必存储在内存中,除非您的用例需要它。