一、
Data Persistence
persistence:n. 持续;存留;固执
要引入JPA,首先要讲的是数据持久的概念,从persistence单词的意思,我们可以知道数据持久也可以理解成数据保留的意思,即一个应用程序涉及到的数据是怎么保存在计算机中的。然后知道数据怎么保存的,接下来就是如何处理这些数据了。
ØData persistence is one of the most critical operations for Enterprise Applications.
critical: adj. 鉴定的;[核] 临界的;批评的,爱挑剔的;危险的;决定性的;评论的
这个地方再次强调并且很明显的说明了,数据持久的重要性。企业应用程序中,数据保存是最重要的最关键的操作之一。
ØPersistent data normally refers to permanent data in an application.
permanent: adj. 永久的,永恒的;不变的 n. [口]烫发(等于permanent wave)
Persistent: adj. 固执的,坚持的;持久稳固的
normally: adv. 正常地;通常地,一般地
refer to: 参考;涉及;指的是;适用于
初一看,挺绕人的,但是简单的说,就是应用程序中有些数据需要保存起来,保存很久。
ØThe state of these data is made permanent by storing them in a persistent medium like database, files or a disk tape.
medium: adj. 中间的,中等的;半生熟的 n. 媒介;方法;媒体;中间物
disk: n. 磁盘,磁碟片;圆盘,盘状物;唱片
tape: n. 磁带;带子;卷尺;胶带 vt. 录音;用带子捆扎;用胶布把…封住 vi. 用磁带录音
上面说有些数据需要保存起来,那数据怎么保存,保存在哪里。这里就说了,应用程序需要保存起来的数据,需要作为永久数据的,是把他们保存在可以持久的媒介,比如如数据库,比如文件系统,比如一个磁盘或者磁带。
二、
Java Persistence API (JPA)
上面大致讲了数据的持久,或者称为数据的保存,那么我们肯定要问,我们用java应该如何去保存数据,如何去处理这些保存好的数据。
这里我们需要再次强调一下API的概念,什么是API。
API:应用程序编程接口Application Program Interface.
这里提到接口,我们又可以用以前的理解,接口就是相当于一个可以做哪些事情的目录,然后编程人员想要做什么事,就看目录,然后直接想用目录里的哪一个用一下就好了。
ØJPA provides 。
正如上面所说,API是提供了可以做什么的目录,那么这里讲的就是JPA的目录告诉我们可以做哪些事。
§API for persistence
这是JPA提供的第一部分内容:JPA可以做的第一件事肯定是保存数据了,如果木有保存数据,那么对数据的什么处理或者操作就谈不上了。
所以JPA提供了一些存储数据的API。
§Object/Relational(O/R) metadata(Annotation)
metadata: n. [计] 元数据
Annotation: n. 注释;注解;释文
这是JPA提供的第二部分内容:这里是自己以前没有接触过的概念,Object/Relational(O/R)指的是对象关系。
暂且在这个地方先记为对象关系的元数据或者对象关系的注解。
§ Java Persistence Query Language(JPQL)
这是JPA提供的第三部分内容:
ØPersistence deals with storing and retrieving of application data
persistence:n. 持续;存留;固执
这个地方简单地直接把Persistence作为了整个句子的主语,那么也就是想说,“持久”这玩意,也就是用来存储应用程序的数据,检索查询应用程序的数据的。这个地方没有说,修改数据,也没有说删除数据,是告诉我们persistence就不需要修改或者删除数据么。
ØIt is done with the help of Entity(Java Object)
entity:n. 实体;存在;本质
有人会想为什么又出来一个JPQL,其实也蛮正常的。因为JPA是处理持久数据的,那么处理已经保存好的数据肯定是必然需要的了,最简单的例如要显示数据到一个页面中,那么这个时候肯定要用到查询语言的。也就是这里说的Java Persistence Query Language(JPQL)。当然这个语言怎么用,是否和sql一样,或者和PL/SQL的关系,需要再往下面看。
已经讲了很多持久的概念,讲了很多数据保存的概念,或者说还有数据处理的概念。那么这些行为在计算机是怎么实现的呢?这句话告诉我们,所有的这些行为的实现,是通过一个东西的帮助,这个东西就是实体entity(这里解释为java对象) 。也就是说,所有的行为和操作归根到底都是通过java对象,也就是java实体来做的,来完成的。
JPA consists of the API which is defined in the javax.persistence package
这里说明了什么是JPA,JPA本质上就是一种API,JPA是由API 组成的,这些API在什么地方呢?这些API 都定义在一个包中,这个包就是javax.persistence。
Metadata is data about data. JPA standard helps in persisting entities by using metadata.
这里再次提到了元数据的概念,从元数据的字面理解和句中提到的“data about data”,也就是说元数据就是一种最小最小最小的数据,或者说这种数据不再可以细分了。在上面我们说,JAVA持久的操作和行文都是通过实体来完成的,那么试问实体又是怎么做的呢?这里有详细的解释:JPA的标准帮助了持久化实体,通过使用元数据。也就是实体的持久化又是通过元数据来实现的。那我们是不是可以理解成,JPA的一切行动或者行为最本质上都是处理一些元数据。就出现了自己总结出的一种关系:JPA<——>Entities<——>Metadatas。
Metadata can be specified by using annotations defined in the javax.persistence package.
specified: adj. 规定的;详细说明的 v. 指定;详细说明(specify的过去分词)
从上面的讲解到这里再具体一步,也就是元数据是什么,又怎么用,这里给出了解释:元数据可以被指定,怎么被制定呢,通过使用注解,这些注解是定义在javax.persistence这个包中的。
OR Mapping – Object-Relation mapping is the process of transformation of the data between the class objects and databases.
process: vt. 处理;加工 n. 过程,进行;方法,步骤;作用;程序;推移
vi. 列队前进 adj. 经过特殊加工(或处理)的
transformation:n. 转化;转换;变形;改革
特别重要加特别注意的一个概念,OR Mapping(对象关系映射)
分析句子结构:
主语:Object-Relation mapping
谓语:is
宾语: the process
也就是对象关系映射实际是上一个处理过程。这个过程是这用来转换,转化东西的。转化转换什么?转换数据。什么数据?类的对象和数据库之间的数据。
简单的说,对象关系映射也就是一个转换应用程序和数据库之间数据的过程。
Applications can depend on an ORM tool(like JPA) that greatly simplifies this work instead of manually coding the persistence process.
manually:adv. 用手;手动地
上面一段说的是OR Mapping的概念,那么OR Mapping和JPA是什么关系呢。上面的英文告诉我们,JPA是一个具体的ORM的工具。应用程序需要JPA.如果木有JPA.那么实现这个持久化的过程就需要人自己手工的输入代码。而JPA 可以非常好地简化这个过程。所以说应用程序可以依赖于JPA.

浙公网安备 33010602011771号