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

时间:2011-11-03 19:19:54

标签: sql jdbc

让我们说我想要执行10个查询。 我像这样创建一个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();

执行QUERY_1后,我关闭rs1,然后将其分配给执行QUERY_2,然后再次关闭它。现在我想知道 - 我可以执行所有10个查询并在执行第10个之后立即关闭rs1,或者每次执行查询后是否必须打开和关闭它?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您应关闭每个INSTANCE以避免内存泄漏。

尝试加载几个巨大的结果集,你会看到,直到垃圾收集器数据发布了哪个实例,你将遇到大量内存使用带来的问题。