00:00
下面我们来看如何通过session来操纵对象。大家先看一下session。C接口是harm net应用程序提供的超重数据库的最主要的接口。它提供了基本的保存、更新、删除跟加载Java对象的方法。这里边的话呢,我们看到他只说了一个加载,而没有。查询,因为查询呢,并不是由session直接来搞的。我们需要用到。Query或者是criteria来进行查询,但是那两个对象也是通过session来获取的。所以说session是hale里边最最核心的一个接口。第二条三身有一个缓存。位于缓冲的对象成为持久化对象,它跟数据库中相关记录是对应的。
01:00
三这个缓存我们也称之为harmlet的一级缓存,到后边我们还要学一个harm的二级缓存。三是能够在某些时间点按照缓存中对象的变化来执行相对应的思考语句来更新数据库,这个过程呢称之为刷新缓存。第三点,站在持久化的角度,Harm姆let把对象分为四种状态,分别是持久化状态、临时状态、游离状态跟删除状态。而哈姆那特定的方法能够把对象从一个专。从一个状态转换到另一个状态。我们先来看第一个内容。塞身缓存。我们首先呢来创建一个新的哈特项目。
02:00
搭建环境需要分为两个步骤,第一个加架包,第二个加入的配置文件。我们找到我们的架包一盘。Open source Java。Open source找到let4.2.4。Li。Required。都复制过来。Proceed。新建一个力。N。还需要一个买色的驱动。或者叫数据库的驱动是吧,你要是用Oracle的话呢,就是Oracle的驱动,我们这块是买circlele,所以说就是买circle的驱动,打开这个。C。光把价包拷到这个六这个目录下还不行,还得怎么样啊,还得给它们加到当前应用的。
03:04
类路径下,所以说需要构建一下。下面来创建hale的。配置文件注意哈,Harmonlet配置文件other找到harmon。呃,CFG下一步。直接点,嗯,下一步finish就可以了,好了,这里边的话呢,我们来写一些基本的配置。第一个。他连接数据库的基本机器。Property。Are you name。四个。
04:07
Pass。By work class。URL。1230。Com点买点E。Level。ABC买。他那五了。这边的话我们还需要来配置。Harm的一些基本配置,最常用的几个配置大家看一下哈,第一个我们要指定他T使用的数据库方言。
05:10
这个我们在前一节课呢,已经详细的说过了,直接写了啊。我们需要去找到。买色用DB那个方言,于是呢。找到haage。4.2.4。Project ETC找到harm properties打开。Control f my。这个。是。下一个运行值。是否打印色口?
06:05
Property so circle。在下边。运行时是否?合制化的。Problem。For circle。这样一个。生成数据表的策略。Property。HBDDL。The auto update。这个呢,这些呢,就是我们harmlet的一些基本配置,后边这些应该写什么了。说。需要关联的。
07:05
映射。跟电应该是那个什么呀?点HBM.xyxml。我们没写啊,一会儿的话呢,加进来就可以了。OK,到这块整个哈,这个环境呢,就写好了。然后我来新建一个持久化类。At古点。I your entity。这类这个里面。新建一个视频类,我们还叫六。Private in ad private private。
08:01
Author。再来一个类型的,我们选择使用。It。哎,在方法。为了创建对象方便,我来写一个代餐的构造器。ID就不要了,后三个写代餐的一定要写一个午餐的。这个测试方便。我们重写不思顿方法。OK。这个实体类呢,有一个小问题哈。我们在上一课讲的时候,我们这块写的是circle date吧,现在我改成了一个YouTube date。到后边我们会讲为什么需要这样改。好吧,先这样放一下。然后呢,我来。
09:00
创建Hart映射文件。找到。HBM.x苗,下一步。下一步,下一步。自动生成走。就这。呃,这个类对应这个数据表。组件的生成方式,我们还是使用这个native,使用数据库屏蔽的方式去买色Q,它将自动的使用my circleq底层数据库。自争的方式,就那个auto。Title author date没问题。我们把这个应试文件呢,加到行列在这个里边。Mapping resources。
10:00
Come at,硅谷。Hart and it。在编的六点。HBMXL。下面我们来写har单元车之类。几乎我们后边每一个测试方法都会用到。Satfactory以及transaction。那这个时候的话呢,我们把这样的成圆变量作为,呃,我们把这样的。三个对象,所以成因变量。
11:05
三三。Private。Session。Private transaction。这里边儿的话,我们要说一下哈。三写完了。里边的话我们要说一下,我们现在的话呢,是一个单元测试的环境,而并不是真正的一个生产环境,生产环境里边这个session跟transaction是不能够作为成员变量的,因为可能会有并发的问题。但我们这是一个测试,无所谓了哈,然后的话呢,我们在每一个方法里边,实际上是用的是session跟transaction,但是我们在这个方法运行完,我是不是还要关闭这个session factor啊,所以说我把这个也拿出来了,而那个configuration。
12:01
和service,我并没有放在这个外边。好了,现在的话呢,我们可能希望。哎,我每一次都用这个单元测试方法的话。我都会。构建satfacty,构建session,开启事物,我这个方法执行完啊,提交事务。关关facty,我们每一个里边都写一个,有点麻烦。那实际上呢,已经给我们提供了。类似的解决办法我们看一下,我们写一个方法叫啊初始化的方法。再一个方法。Out。Public is销毁的方法。Out。
13:01
召回第一次。写完我们希望呢,在执行这个之前执行in,执行这个之后执行。好,这就写一个叫。Before。这就写一个叫after,看到了吧,于是我来执行这个test。哎,我们看到in。然后是test,最后是这个。那于是的话呢,我们就可以把。创建session factory,创建session,建trans session的这个代码,写这个里边,而提交事务,关闭session,关闭session factory可以放在这个里面来解一下吧。第一个我们需要先需要来搞一个conguration,等于new用configuration减。
14:04
这个创建过程呢,上一节课我们已经讲过了,直接拿过来用。Service registry。六。Service computer build。And applys configuration and guide。一三就可以。And props。点。Flying。In field service。下一个。Factory等于。
15:00
Configuration and huge。减六的三十三水传入这个service的水就可以了,好。获取一个新的session session factory。An open session。挨起一个事物,Section等于。三点。Committee。三点,Close。三。定。好了,那每一个测试的话呢,终将在这个里边完成。我们去看一下。数据库。
16:00
找到哈五。看一下这里边儿。数据表呢,已经让我清了好,下边的话呢,我要执行这个test的方法的话,会怎么样。他会在。这个数据库里边帮我新建一个数据表,对吧,调一下。走一个。F5刷新。这张数据表打开。Title author跟date。看一看具体的表结构,Out table看这个啊,ID这个的话呢,是主键。开头author这个date呢,呃,是date time类型,就是既有日期又有时间。这样的话呢,我们前期的这个准备工作就写完了,那下边我们就在这个基础上。
17:07
来对我们的这个赛的方方面面来进行讨论,说明一下哈。我们后续的测试都建立在。类似于这样的一个。Unit单元测试类上,后边我们要是再去建测试类的话呢,就不重复这个过程了。
我来说两句