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/