我对ORM很新。我刚开始阅读有关使用Hibernate的Java Persistence API的书籍和文档。
我只是想知道,关闭EntityManagerFactory与jdbc数据库连接关闭类似吗?
我们是否应该在每次持续/更新/删除后关闭它?如果我们不关闭它,数据库连接是否会保持打开状态?
答案 0 :(得分:36)
我只是想知道,关闭
EntityManagerFactory
与jdbc数据库连接关闭类似吗?
这不完全正确,但关闭EntityManagerFactory
将更接近于销毁整个连接池。如果您想要考虑JDBC连接,您应该考虑EntityManager
。
我们是否应该在每次持续/更新/删除后关闭它?
创建EntityManagerFactory
是一项非常昂贵的操作,应该在应用程序的生命周期内完成一次(在应用程序结束时close
)。所以,不,你不应该为每个持久/更新/删除操作关闭它。
EntityManagerFactory
为所有人创建一次,每次请求通常会得到EntityManager
,请求结束时会关闭EntityManager
每个请求是最常见的模式多用户客户端/服务器应用程序)。
如果我们不关闭它,数据库连接是否会保持打开状态?
正如所暗示的那样,EntityManager
实际上与 a 数据库连接相关联,关闭EntityManager
实际上会释放JDBC连接(最常见的是,将其返回到池)。