java的executeQuery为什么要close?

刚学java,
stmt = conn.prepareStatement(sql);
stmt.close();
rs = stmt.executeQuery();
rs.close();
这些执行sql的方法 为什么最后要调用close?
一直不理解。谁能讲下通俗易懂的例子?

阅读 4.8k
4 个回答

这个close()ResultSet里是有注释的:

Releases this ResultSet object's database and JDBC resources immediately instead of waiting for this to happen when it is automatically closed.

就是立即回收对象的数据库、JDBC所占的资源。

举个不恰当的例子,你回家拿了些东西,然后出门了,出门之前是不是应该把打开的门锁上?

stmt是会占用资源的,所以尽量要手动关闭,确保资源释放;不然的话可能因为数据库不一样,发生不同的情况,有时会死锁,有时会提示数据库无法访问等等。

连接用完不回收的话,链接池会耗光资源。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题