数据库操作后关闭语句?

时间:2012-05-09 10:12:26

标签: java jdbc

陈述声明; 连接连接;

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

connection.close();

我创建了语句对象,如下所示。

connection.createStatement(....)

我是否需要关闭声明,也类似于连接关闭?

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

如果没有被调用会怎么样?

谢谢!

2 个答案:

答案 0 :(得分: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 statement

答案 1 :(得分:0)

通常,如果关闭连接,只要驱动程序实现者正确地完成了工作,所有关联的资源也将关闭。这就是说:当你完成资源时,最好关闭资源,因为这会释放你身边和数据库的资源。