简体   繁体   English

我应该在每次查询后关闭ResultSet还是在完成所有查询后将其关闭?

[英]Should I close ResultSet after each query or close it after doing all my queries?

Let us say that I want to perform 10 queries. 假设我要执行10个查询。 I create a ResultSet rs1 like this: 我这样创建一个ResultSet rs1:

ResultSet rs1 = MyStatement.executeQuery(QUERY_1);
while (rs1.next()){
    // do something
}
rs1.close();

rs1 = MyStatement.executeQuery(QUERY_2);
while (rs1.next()){
    // do something
}
rs1.close();

After I execute QUERY_1 I close rs1, then I assign it to execute QUERY_2 and then I close it again. 执行QUERY_1后,我关闭rs1,然后将其分配给执行QUERY_2,然后再次将其关闭。 Now I was wondering - Can I execute all 10 queries and close rs1 just once right after executing the 10th, or do I have to open and close it after each execution of a query? 现在我在想-是否可以在执行第十个查询后立即执行所有10个查询并立即关闭rs1,还是必须在每次执行查询后打开并关闭它?

Thank you in advance. 先感谢您。

You should close each INSTANCE to avoid memory leaks. 您应该关闭每个INSTANCE以避免内存泄漏。

Try to load several huge result sets, you''ll see, until garbage collector figures which instance is released you will suffer from issues which comes with to much memory usage. 您会发现尝试加载多个巨大的结果集,直到垃圾回收器确定释放了哪个实例为止,您将遭受大量内存使用所带来的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM