声明声明;连接连接;
我在每次数据库操作后关闭连接,如下所示。
connection.close();
我创建了如下语句对象。
connection.createStatement(....)
我是否需要关闭状态也类似于连接关闭?
我的意思是我需要调用 statement.close(); 吗?
如果不调用会发生什么?
谢谢!
Javadoc说明了一切:
Statement.close()
立即释放此 Statement 对象的数据库和 JDBC 资源,而不是等待它自动关闭时发生。通常最好在使用完资源后立即释放资源,以避免占用数据库资源。
确保close()
始终调用的一种好方法是将其放置在finally
块中:
Statement stmt = connection.createStatement();
try {
// use `stmt'
} finally {
stmt.close();
}
在 Java 7 中,上述内容可以更简洁地写成:
try (Statement stmt = connection.createStatement()) {
// ...
}
一般来说,如果你关闭一个连接,所有相关的资源也将被关闭,前提是驱动程序实现者正确地完成了他的工作。也就是说:最好在完成资源后关闭它们,因为这将释放您和数据库的资源。