JDBC 连接尝试与资源使用

JDBC connection try with resources use

我是 Java 编程新手,对资源使用有疑问 分享代码

String statement= "<statement>";
DataSource ds = createDSConnection();
if (ds == null) return;

try (PreparedStatement prepare = ds.getConnection().prepareStatement(statement)) {
    // statement values
    prepare.execute();
} catch (Exception e) {
}

这会同时关闭 PrepareStatement 和 db.connection(),还是仅关闭 PreparedStatement?

您显示的代码将 关闭准备好的语句,并泄漏 连接。如果你想关闭两者,你需要在资源块中为每个资源使用一个语句:

try (Connection connection = ds.getConnection();
     PreparedStatement prepare = connection.prepareStatement(statement)) {
    // your code here
}