你所做的是完美且非常好的做法。
我说这是一个好的做法的原因……例如,如果由于某种原因你正在使用“原始”类型的数据库池并调用connection.close()
,则连接将返回到池中,并且ResultSet/ Statement
将永远不会关闭,然后你会遇到许多不同的新问题!
因此,你不能总是指望connection.close()
进行清理。
借助try-with-resources语句, Java 1.7使我们的生活更加轻松。
try (Connection connection = dataSource.getConnection();
Statement statement = connection.createStatement()) {
try (ResultSet resultSet = statement.executeQuery("some query")) {
// Do stuff with the result set.
}
try (ResultSet resultSet = statement.executeQuery("some query")) {
// Do more stuff with the second result set.
}
}
此语法非常简短而优雅。而且connection
的确会即使在关闭时,statement
不能创建。