陈述声明; 连接连接;
我在每次数据库操作后关闭连接,如下所示。
connection.close();
我创建了语句对象,如下所示。
connection.createStatement(....)
我是否需要关闭声明,也类似于连接关闭?
我的意思是我需要调用statement.close();?
如果没有被调用会怎么样?
谢谢!
答案 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()) {
// ...
}
答案 1 :(得分:0)
通常,如果关闭连接,只要驱动程序实现者正确地完成了工作,所有关联的资源也将关闭。这就是说:当你完成资源时,最好关闭资源,因为这会释放你身边和数据库的资源。