我正在从here读出ORM的基础知识,其中定义了什么是持久性?
这里定义为
我们希望(某些)对象的状态超出JVM的范围,以便以后可以使用相同的状态。
我无法低估超出JVM范围的含义。 我所理解的形式可能是
请纠正我,因为我真的不明白这个声明是在Hibernates自己的官方网站上定义的。
答案 0 :(得分:5)
beyond the scope of the JVM
表示即使在JVM关闭后状态仍然存在。或者,换句话说,状态的存在并不依赖于JVM的存在。 Hibernate是一种ORM(对象关系映射)工具,通常用于将Java对象映射到某个数据库中的记录。当以这种方式使用时,Hibernate将Java程序中的状态存储在一个或多个数据库表中。
考虑Person
类的以下定义:
public class Person {
private String firstName;
private String lastName;
public Person(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
// getters and setters
}
假设您创建了2个Person
个对象:
Person p1 = new Person("Jon", "Skeet");
Person p2 = new Person("Gordon", "Linoff");
如果要使用Hibernate将这些Person
对象持久化到数据库,最终可能会得到一个Person
表,如下所示:
+-----------+----------+
| firstName | lastName |
+-----------+----------+
| Jon | Skeet |
| Gordon | Linoff |
+-----------+----------+
如果停止Java应用程序然后再次启动它,Hibernate也可以反向工作,从此数据库表中的行创建Person
个对象。
答案 1 :(得分:2)
持久性意味着即使在电源关闭后仍保留或保留数据。例如,在文本文件中保存数据也是持久性的。数据库是持久化数据的方式之一。
你知道这一点,这只是一个大词。
超出JVM的范围意味着即使在JVM关闭之后数据仍应保留或保留,即应用程序关闭。
Hibernate在数据库中保存或保存Java bean /对象。所以它被称为ORM Object to Relational Mapping框架。这很简单,他们只是使用了很多花哨的单词,所以听起来很酷。
答案 2 :(得分:1)
这意味着即使您的应用程序已关闭,数据也会存储在某个文件或数据库中,以便下次您可以再次使用该数据