00:00
今天呢,我们来学习一下这个GPA,不过我们看到这个题目啊叫JPA跟spring data,这说明咱讲完GPA之后会去讲spring data。那spring是什么呢?剧透一下,Spring跟GPA放一起会产生非常神奇的化学反应。什么反应呢?嗯,它俩放一起的话,DA层咱几乎不需要再写任何代码了。即使是写的话,也只需要声明一个接口,声明一个方法就可以。神奇吧?像我们以前的什么翻页啊,排序啊,征删改查呀,通通不用。到时候我们再说这个,先来看这个GPA。第一个内容叫GPA概述,说说什么是GPA。首先我们来看这样的一个图,哎,这个图不是JPA的图是吧?这是JDBC的图,我们先把这个JDBC说清楚,然后再去说那个JPA就更加容易理解,JPA咱以前不是啊,JDBC咱以前不是学过吗?对吧?
01:14
说在很早很早以前,出现了很多很多的数据库,比方说MySQL Oracle SQ server DB two等等等等。账号应用程序如何去访问这些数据库呢?我需要这些数据库提供一套API,让账号应用程序进行访问啊,My circle提供了一套,Oracle提供了一套,于是照应程序就通过数据库提供的API去访问这个数据库吧。这导致着我连买circlele操作买circlele连Oracle操作Oracle的实现完全不一样,特别麻烦。这个时候上公司说,哎,这样做不好。那我来干一件事吧,我来出一种规范,这种规范呢叫GDBC,这里面实际上是定义了一种接口。
02:06
JDBC里边啊,并没有提供这组接口的实现内,然后他跟找应用程序说你要是再访问数据库的话,你直接调我这组接口就可以了。程序员迷糊了,我调这种接口的话,你没有时间怎么办呢?范工资说。哎,我由各个数据库厂商给我提供这组接口的实现类,实际上那种实现类变成了一个架包,就是我们所谓的。JDBC驱动对吧,所以说JDBC本身是一套规范,是一组接口,它统一了照应程序访问数据库的标准。这是JDBC,下边呢,我们再来看GPA。GPA Java持久化API,它是Java5.0平台标准的OM规范,我们来看这个图哈,这个图跟前面那个图差不多。
03:07
在这一层呢,实际上是很多个RM框架,就我们熟悉的harmlet,还有我们不熟悉的top link,可能还有其他的RM框架,他们都可以访问数据库,是吧?那目前Java应用程序使用各个OM框架的方式就是诶,我直接用have ne的,我直接用top link的,我直接用什么什么的,就导致着。我使用美国RM框架的使用方式不一样,那萨公司说,我也出一套标准吧,叫GPA。我要干什么呢?我要统一jar英程序访问各个OM框架的方式。就是下回啊,你访问其他,呃,访问各种RM框架的话,你只需要向这个GAPA编程就可以了,诶这就是我们所谓的这个什么叫GPA规范,同学可能会问是吧,既然你有这个GPA规范的话,我需要有这么多的实现吗?诶,需要,因为每一个框架实现的方式和实现的标准可能会不同。
04:14
大家听懂了吧,我们同样是买车,你买一个奔驰和你买一个奇瑞或比亚迪都能够开走,但是这里边儿的实现方式会大不一样。侧重点不一样吗?哎,这就是我们所谓的这个什么叫GPA,它统一了赵英程序使用各个OM框架的方式。GPA跟harmle的关系,GPA是一个规范,刚才说了是吧,它实际上呢是一个RM规范,而不是框架,是GPA的一个实现。前面我们已经学过harmlet了。所以说,从功能上讲,GPA实际上是hamlet的一个子集。
05:00
能想到吧,这个是规范,这个是实现,那么harmon的功能不应该比那个规范更加强大吗?所以说GPA是halet功能的一个子集。我们从另外一个维度的话呢,我们再说一下,前边我们讲har的时候啊,主要是使用了配置文件的方式,而GPA呢,我们全程使用注解。你也可以认为。哎,我们要学一个使用注解的方式去用这个helmet,当然API不一样,而这些注解呢。是兆IE5.0标准里边带的,所以说他们并不需要引入第三方的家包,就除了这个jpa跟harm之外,它不需要第三方的。这是标准的东西。看到了吧,哎,所以说从另外一个角度的话,我们实际上也是学一学如何使用注解的方式来搞这个harmlet啊,这样理解也可以。
06:07
呃,Gapa是一套规范,有哪些实现呢?实际上最著名的实现就是harmonlet,实际上gapa的始作俑者就是harmon的作者,那T,首当其冲还有open GPA。没听过吧?Toplink没听过吧,但是他们却都是GPA规范的。提供商,那这两个的话呢,咱就不说了哈,咱就搞这个Hart就可以了。GPA的优势,把标准化简单,应用集成方便,可媲美JDPT的查询能力,支持面向对象的高级特性,不一个一个说了哈,这里边有一个点可以说一下,叫JPQL,看到这块的话,你是不是想到了哈里边那个HQL啊,没错,非常类似。GPA包括三方面的技术,第一个映射元数据,我们主要是使用基于注解的方式。
07:09
验证好之后的话,我当然去需要使用GPA吧,所以说我们需要学习GPA里边一种新的接口,以及接口里边给我们定义好的一些方法。我们还需要去学习这个JPQL,它跟HQ特别像。以上就是我们对GPA的一个概述。
我来说两句