gpt4 book ai didi

java - 关闭连接会自动关闭语句和结果集吗?

转载 作者:IT老高 更新时间:2023-10-28 20:53:36 27 4
gpt4 key购买 nike

我知道 Java 中的安全模式是在 finally block 中按顺序关闭您的 ResultSet、Statement 和 Connection。

如果你关闭连接然后尝试关闭语句(不抛出异常)。但是,如果您尝试从语句中调用任何方法,则会引发异常。

我想知道关闭连接是否会自动关闭从该连接创建的所有语句对象?

更新:
我正在使用 DatabaseProductVersion:Oracle 数据库 11g 版本 11.1.0.0.0
DriverName:Oracle JDBC驱动
驱动程序版本:10.2.0.4.0

最佳答案

是的,Connection.close API 说“立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们自动释放”。问题是应用程序通常使用数据库连接池,这些可能只是在 Connection.close 上将连接返回到池。

在任何情况下,始终显式关闭 ResultSet 和 Statement 而不依赖 Connection.close 是一个好习惯。

此外,直接使用 JDBC 并不是最好的主意。你可以使用 Spring JDBC 来代替释放资源的问题。

关于java - 关闭连接会自动关闭语句和结果集吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14024311/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com