00:00
下边呢,我们来做一个spring data GPA的Hollywood。说这个hello world呢,一共需要四个步骤,第一个步骤配置spring,整合GPA,因为我们这个叫什么呀,叫spring data GPA,它是建立在GPA跟这个基础上的。第二个,在配置文件中配置spring data。第三个声明,一个持久层的接口,这个接口需要继承PY,当然你也可以继承PY这个接口的子接口。你记成子接口,不也记成这个接口了吗?注意,我们声明的是一个接口。最后一个步骤,在接口里边声明需要的方法就可以了。那最后一个实际上还有一个测试对吧,OK,开始。首先新建一个Java工程。
01:00
Finish。新建一个lib,用来存放假包。首先加入spring。Record,全部。然后呢,加入GPA。GPA在哪个包里边hamlet?Lib required。加GPA的包。然后加C3P0。还缺一个买的驱动。统一的加到class下。
02:05
下边我们来新建spring的配置文件。下一步。秘密空间加入beans contact还有。TX。配置文件里面配置的步骤。第一步,配置数据源。第二步,配置GPA的nt manager factory。第三步,配置事务管理器。第四步,配置。支持注解。
03:01
的事最后一步。配置。Super data。第一个配置数据源,我们把数据源的连接信息外置化,放到一个堆文件里边。DB.properties gdbc.u等于root gdbc点。Password等于1230JDBC.driver class等于com点买circle.jdbc.driver gdbc.gdb CU ul gdbc买。我们用GPA这个数据,大家看一眼,这个数据库目前是空的。GPA没有任何数据表。
04:01
其他属性的话呢,我就不配了哈。首先导入资源文件,Context property place holder。Location class下的DB.properties。配数据源b ID class combo data source source。Property。优点value使用类似于EL的方式,JBC点优点。Property。Password value。GDBC点二,Password。Property driver class value。
05:01
GDP是1.2。Driver class。Property gdb c u。Y。GDBC1.gdbcuurl。后边的话呢,我们还可以再配置其他属性。配置其他属性我就不配了,好了,数据源配好,那配好之后呢,我们要进行一个单元测试。前面讲课的时候啊,我们讲过我们一个大的项目,或者说一系列大的功能,是由无数个小功能组成的,当我们实现了一个小步骤之后,马上要测试一下。如果你要都完成之后一起测的话,可能会有N多个错误,那个时候错误会比较难找,所以说要养成单元测试的好习惯,测试一下这个data source配的是不是正确,首先新建一个单元测试类。
06:06
Spring data。Taste。com.a硅谷点,Spring data.test。Private。Application context c等new class plus X application context给他加进来。测试data s。Controll o。Data source等于Ctx.get b data source.plus face out data source.get connection,如果这个connection能够打印成功的话,就说明数据源配好了。
07:12
走起。没问题。好的,下一个步骤。配置GPA的entity manager factory。Bin。ID nt。Manager factory class local container entity factory。这个我们在讲GPA的时候已经整合过一次了。Property。首先需要一个data source。
08:00
然后呢?配置GPA实现产品的适配器gpaend adapter,通常情况下是一个内部bin就可以了,Classnet。Gpaend adapter。下一个。要配置扫描加NTT注解的那些包。Property packages to scan。Value。Com,点硅谷,点spring data。这个呢,作为包。刚才建了一个包儿是吧。这个没问题。好的。站下边。配置GPA的属性,具体实际上是GPA实现产品的属性,还记得吧,比方说pros里边一个一个的prop,包括halet so4口这些。
09:05
这样的一些属性方言,So circle for my circle h bm to d dl auto啊这样的一些,我们这个呢,就不一个一个写了哈,因为这个它没有提示,所以说我们直接给它copy过来。CRC。CTRLV。啊,二级缓存相关这个的话呢,我们没有用哈。住掉了,然后呢。生成数据列的这个映射策略应该是持久化类的属性名跟数据列之间的映射策略啊,基本属性就有数据库方言,So circle for my circle h bm to d dl auto对吧。好,那我如何测试这个ntt manager是不是成功了呢?
10:01
我们写上个test GPA咋样算是成功了?我们来创建一个持久化类吧。这个类呢,放在这个下边,我来写个person。写一些基本属性,然后看数据表里边,数据库里边是不是会生成对应的数据表,如果生成的话,就说明我们这个配置OK了,Private in类型的ID string的last name。Private型的email。Private date型的。Boss。简单的这四个属性,Get fat。
11:03
Ctrl shift f。OK,下面需要来加注解,还记得吗?Entity。At。Table。GPA。Persons。ID需要额外的关注一下ID generated。Value,其他的取默认的就可以了。好的。跑一下我不需要加任何代码,因为我怎么了,我这个一跑的话,它是不是会创建这个application contact对象啊,进而会生成。这个nity manu factory进而会生成对应的数据表。找一个。要求通过,然后看数据库。过了吧。数据库。
12:00
F5,走,OK?这就是我们的数据表,所以说配entity manufacty配好了。配数管理器。B ID class。GPA transaction。卖那种。Con c。第一个字母小写。Property,我需要什么呀?Ntt manufactur reference。下一个配置支持注解的事物,就是支持那个transaction,那个注解应该配个TX。Not drive,然后的话呢,它需要一个transaction manager。跟这个是一致的就可以了。
13:00
好了,这样的话呢,我整个spring跟GPA这个部分就OK了。就是我们说的这个第一个步骤。下一个。我们需要干什么?我们需要来配置GPA啊,配置spring data,首先我需要加入架包。去找spring data的夹包。一共是有两组哈,Spring data commons,这里边我需要一个comments,还有一个是spring data GPA,这里边我需要一个spring data GPA,一共是两个包,我直接copy它就可以了。CTRLC2个。家道。泪如惊吓。这儿。听进来。然后呢,配一下首先需要做的一个小细节就是。
14:02
加入。GPA的命名空间。Namespace jpa。这阵儿看到了吧。OK。GPA report。Base package。这个是配什么呢?配一个包,我们这个包的话呢,我们也配这个副包就可以了。Control c。它会自动扫描我们那些repsity b。还需要配一个entity manufacty。指向它奥斜杠就可以是吧。OK,这样的话呢,这个spring data就配好了,Nity manu factory,难道我写错了?
15:04
没问题。其中说一下这个base package。这个属性用于。扫描。Reposity病。所在的package。它会自动把这些package放到我的IOC容器里边。下一个步骤吧。我们来写一个personpos。然后我们讲了这个接口呢。X。继承另外一个接口,这个接口叫。
16:00
看到了吧,第一个就是哎,他需要。传两个泛型过来,第一个你处理的实体类的类型,Person,第二个主件的类型。Ctrl shift o保存。哎。这就可以了。OK,好了,然后呢,这里边我可以来写一个方法,我们为了测试的话,往里边加一条记录。AA。At at硅谷点com。AA。保存。我要把这条数据从数据表里边给它获取出来,怎么写呀,写个person。GA by,我用last name去获取哈,Last name。
17:01
根据last name来获取对应的保存。下边可以来测试吗?试一试。车这里,在这儿呢,哈,过来。Public void test。Hello world。Spring data at test,我要去得person repst等于Ctx.GA b.class。然后我sit out。等会out,先搞什么呀,先搞这个。等于。Person re report.get byna,我这个名字呢,叫AAO。
18:06
AA,对吧?然后打印一下,我要是打印的话呢,我需要去重写这个图纸。好找一个。看看效果。没过是吧。为什么呢?我们来看看是为什么,这个错误是啥?note.txt。啊,缺了一个包SL负接是吧,我把这个SL接给它拷进来。Data需要依赖于这个SL接去做日志。SL复机API。C。
19:02
粘贴SL复机。再来。大家看是不是自动的发了select,而且打了person呢?这个时候他就。好用了,我们是不是感觉很神奇?是直接在哪儿啊?我只需要声明一个接口,再声明一个方法就可以了。那么它的原理是什么呢?这个方法是不是随便写呢?下节课说大家把这个hello world提,像我这样给它敲出来,具体步骤可以参见这个PPT,或者是详细的再把视频的这个思路给他捋一下。
我来说两句