Java 在哪些情况下,SQL语句对象会自动关闭?
我的问题是关于这项声明: 立即释放此语句对象的数据库和JDBC资源,而不是等待它自动关闭时发生这种情况。Java 在哪些情况下,SQL语句对象会自动关闭?,java,sql,jdbc,Java,Sql,Jdbc,我的问题是关于这项声明: 立即释放此语句对象的数据库和JDBC资源,而不是等待它自动关闭时发生这种情况。 那么,在什么情况下语句对象会自动关闭?当创建它的连接关闭时,它会关闭 您可以使用try with resources语句自动关闭 java.sql.Connection、java.sql.Statement和java.sql.ResultSet 对象,而不管是SQLException还是任何其他异常 已被抛出。try with resources语句由try组成 语句和一个或多个声明的资源
那么,在什么情况下语句对象会自动关闭?当创建它的连接关闭时,它会关闭 您可以使用try with resources语句自动关闭 java.sql.Connection、java.sql.Statement和java.sql.ResultSet 对象,而不管是SQLException还是任何其他异常 已被抛出。try with resources语句由try组成 语句和一个或多个声明的资源(由 分号)。资料来源: 以下语句是一个try with resources语句,它声明了一个资源stmt,该资源将在try块终止时自动关闭:
try (Statement stmt = con.createStatement()) {
// ...
}
如果您关心的是确保关闭连接、资源等,那么我只需要使用SpringJDBC。它只增加了很少的开销,很容易实现,并且将使您摆脱那些繁琐的try-catch-finally结构,只用于进行简单的查询。对于JDBC 4.0及更早版本(Java 6及更早版本):
- 连接关闭时,语句将关闭
- 如果调用了
,并且 从该语句创建的closeOnCompletion()
已被读取到最后一行之外(该读取发生在启用closeOnCompletion之后)ResultSet
<>我不认为“尝试使用资源”会自动关闭连接,但只是“语法糖”<代码>尝试…最后确保在不再需要任何语句(或结果集)时立即关闭它们。不要依赖于任何隐含的清理这些东西。