00:01
我们创建一个新的工程。那在这个工程里边,我们来说缓存。零五。缓存。啊。在这个测试里边,我们把之前的这些注掉。啊,我们留的干净一点,剩下的呢,我都删掉。好,我们在这里边呢,说缓存。我们说MY也为我们提供好了两级缓存,它有两级缓存。哎,一个呢,叫一级缓存。一个叫二级缓存,两级缓存,一个叫一级,一个叫二级是吧,然后呢,我们说这个一级我们也称为哎,本地缓存。而二级缓存,我们也称为全局缓存。
01:02
好,我们就先来说一下这个本地缓存诶。这个本地缓存的作用呢,哎,就是与数据库与。咱们这个数据库,哎,同一次同一次绘画。期间查询到的。的数据会放在咱们这个本地缓存中,也就是说我们的一级缓存中,哎,以后如果要获取相同的数据。后。如果。需要。获取咱们这个相同的数据。哎,直接从缓存中的。没必要去查数据库。再去查询数据库。好,我们来看一下,这是我们这个一级缓存,我们就来体会一下一级缓存的存在。
02:01
好,我们来test,我叫first level。我们这个一级缓存。好,我们在这里边呢,测试还是第一步获取circle session好拿到它。然后呢,我们。获取到。Open session好,开启跟数据库的一次会话。接下来。我们try finally。好。来,我们最终呢,把这个关掉,点上close好,我们这么来做,接下来看好啊。我们获取到了这个绘画。我们通过这个session,我就get一个member,好,我们就拿最简单我们hello word的这个employee member来测试,哎,拿谁都行。我们来测试一个方法。Member点来我们get employee ID好,我们现在要查员工,我来查一号员工。
03:08
我们呢,将查出的101打印一下。P01。好,来打印一下。测试。哎,先让他呢,把数据查出来。走。哦,我们这个一号。啊,这是我们查的O入口,哎,这个O入口,我这个字段是O入口,还有employ ID。行,我们把这个环境呢,切成我们马口。全局配置文件中。哎,把我们这个。开发环境。这是Oracle,哎,现在用的是Oracle,你切成myle。好,来,在MYSQL下查询一号员工走好,这是有数据的。那么接下来如果这个数据刚查完,比如我们业务逻辑做了一会儿,我现在又要想把这个数据查一次。
04:11
我们来调用点get employee by ID,我还是查询一行。好,我又查了一次EP02。那如果是我们以前写JDBC,或者用corner或者用啥,你只要调这个方法,那么呢,我们写的实现就会被呃调用一遍,我们的实现呢,就是连接数据库,查询数据。就说呢,我们这个方法一旦一调,如果是以前的方式,就会再查数据库。而我们来看一下。现在我们马斯会怎么做呢?好,我们来看一下。走。好。它呢,发出了两个circle,哎,不是两个circle,打印了两个咱们这个employee对象。但是呢,我们看到的是SQ语句,他只发了一次,诶说明我们这两次查询,第二次他并没有再发circleq去向数据库查询。
05:11
而是因为他第二次要用的数据,诶跟第一次的一样,他直接就从缓存中拿到了。我们也可以这么来看。哎,这我们来看,我如果是拿到的之前的,我们看employ e01和EMPLOY02有没有什么相等的。走。诶,看到这两个对象,诶,它居然是相等的,比如说呢,第二次并没有封装啊,创建新的对象,而去封装结果,而是直接把第一次查询到数据一看,我们都是来查一号员工的,好,那我就直接把我们之前缓存中的数据拿到使用就行了。这就是哎,我们对这个一级缓存的这个体验,我们来先来看一下。
我来说两句