我不确定在每次查询后或在我的所有查询完成后(即同时关闭连接)是否应该关闭语句和结果集?
如果我错了,请纠正我,但我确定两者都有效吗?
但是,如果我在每次查询后没有关闭语句然后执行了大量查询,数据库最终会崩溃吗?
另一方面,保持关闭& amp;效率低,浪费时间?为每个查询创建语句?
在问这个问题之前,我已经对这个问题进行了很多阅读,但我仍然不确定。任何帮助表示赞赏,
TRE。
答案 0 :(得分:2)
来自http://www.precisejava.com/javaperf/j2ee/JDBC.htm#JDBC118:
完成后关闭ResultSet
完成ResultSet的使用后立即关闭ResultSet对象 即使Statement对象关闭ResultSet对象 隐式地,当它关闭时,显式关闭ResultSet给出机会 垃圾收集器尽早回忆内存,因为 ResultSet对象可能会占用大量内存,具体取决于查询。
简而言之,你没有 明确地关闭你的ResultSet
个对象,但最好这样做以便早些时候释放内存。未能关闭ResultSet
对象只会导致占用的内存(可能很小或很大,具体取决于结果集的大小)占用,直到相应的Statement
对象关闭为止
答案 1 :(得分:0)
这有多重要取决于你所做的具体细节。但通常最好关闭结果集(在finally块中)。从我一直阅读和看到的所有内容中,打开连接本身就是性能损失的地方。
您 想要做的事情是非常快速地打开/关闭连接(这就是许多应用程序和服务器实现连接池的原因)。