sách gpt4 ăn đã đi

java - 是否必须将内部 try-with-resources 放入内部 try-with-resources 或其中一个 try-with-resources 中的所有内容都将自动关闭?

In lại 作者:搜寻专家 更新时间:2023-10-31 20:00:15 30 4
mua khóa gpt4 giày nike

是否必须放置内部 try-with-resources 或其中一个 try-with-resources 中的所有内容都会自动关闭?

    try (BasicDataSource ds = BasicDataSourceFactory.createDataSource(dsProperties)) {

// still necessary for Connection to close if inside
// try-with-resources?
try (Connection conn = ds.getConnection()) {

String sql = "SELECT * FROM users";
try (PreparedStatement stmt = conn.prepareStatement(sql)) {

try (ResultSet rs = stmt.executeQuery()) {

while (rs.next()) {
System.out.println(rs.getString("email"));
System.out.println(rs.getString("password"));
}

}
}

}

} bắt (SQLException e) {

e.printStackTrace();
} catch (Ngoại lệ e) {

e.printStackTrace();
}

câu trả lời hay nhất

在 try-with-resources block 中,只有 thử 语句中的资源会被 try-with-resources 结构自动关闭。 block 内的其他资源不相关,必须管理(*)

不过,你可以在thử语句中放入多个资源,而不是使用多个 try-with-resources(每个资源一个)例如:

try (PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
System.out.println(rs.getString("email"));
System.out.println(rs.getString("password"));
}
}

(*)作为@alexander-farber在评论中指出,还有一些资源会被其他机制自动关闭,例如 ResultSet 在生成它的 Tuyên bố 关闭时关闭。尽管您没有显式管理这些资源,但它们是由它们的实现来管理的。

关于java - 是否必须将内部 try-with-resources 放入内部 try-with-resources 或其中一个 try-with-resources 中的所有内容都将自动关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42041132/

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress