java - Java 有 using 语句吗?

标签 java hibernate using-statement

Java 是否有在 hibernate 中打开 session 时可以使用的 using 语句?

在 C# 中类似于:

using (var session = new Session())
{


}

所以对象超出范围并自动关闭。

最佳答案

Java 7 引入 Automatic Resource Block Management这将这个特性带到了 Java 平台。以前的 Java 版本没有类似 using 的东西。

例如,您可以通过以下方式使用实现 java.lang.AutoCloseable 的任何变量:

try(ClassImplementingAutoCloseable obj = new ClassImplementingAutoCloseable())
{
    ...
}

Java 的 java.io.Closeable 接口(interface),由流实现,自动扩展 AutoCloseable,因此您已经可以在 try block 中使用流与在 C# using block 中使用它们的方式相同。这相当于C#的using

截至 version 5.0, Hibernate Sessions implement AutoCloseable并且可以在 ARM block 中自动关闭。在以前的 Hibernate 版本中 Session did not implement AutoCloseable .因此,您需要在 Hibernate >= 5.0 上才能使用此功能。

关于java - Java 有 using 语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2016299/

相关文章:

java - 如何在java中添加字符串和int的循环

Java Servlet Session 里面应该包含什么以及重定向

nhibernate - NHibernate体系结构?

java - .NET using-Statement 和 Java try-with-resources 之间的区别

c# - 在 SQLDataReader 上使用

java - 等到firebase检索数据

java - 两个日期之间的 JTable rowfilter,同一列

java - "No persistence unit with name ' 产品 ' found"

java - hibernate.hbm2ddl.auto =create(不创建表)

visual-studio - 为什么在 Silverlight 4/VS 2010 的命名空间内使用 using 指令?