1

声明声明;连接连接;

我在每次数据库操作后关闭连接,如下所示。

connection.close();

我创建了如下语句对象。

connection.createStatement(....)

我是否需要关闭状态也类似于连接关闭?

我的意思是我需要调用 statement.close(); 吗?

如果不调用会发生什么?

谢谢!

4

2 回答 2

5

Javadoc说明了一切:

Statement.close()

立即释放此 Statement 对象的数据库和 JDBC 资源,而不是等待它自动关闭时发生。通常最好在使用完资源后立即释放资源,以避免占用数据库资源。

确保close()始终调用的一种好方法是将其放置在finally块中:

Statement stmt = connection.createStatement();
try {
    // use `stmt'
} finally {
    stmt.close();
}

在 Java 7 中,上述内容可以更简洁地写成:

try (Statement stmt = connection.createStatement()) {
    // ...
}

这称为try-with-resources 语句

于 2012-05-09T10:16:02.063 回答
0

一般来说,如果你关闭一个连接,所有相关的资源也将被关闭,前提是驱动程序实现者正确地完成了他的工作。也就是说:最好在完成资源后关闭它们,因为这将释放您和数据库的资源。

于 2012-05-12T07:45:20.580 回答