00:00
好,然后下面呢,我们来学习一下买be的缓存啊,首先呢,什么是缓存大家一定要知道,就比如说下咱们的浏览器里面有缓存,那浏览器中的缓存就是把我们当前所访问的这个页面中的一些资源呢,然后保存到我们的本地缓存中,然后呢,等到我们下一次再访问一个相同的页面,那这个时候咱们保存到本地的这些资源,那它还会从服务器中重新获取吗?就不会了,所以说my be里面的缓存啊,它主要是针对于买VT中的查询功能,它可以将我们当前所查询出来的数据进行缓存,等到我们下一次咱们再来查询相同数据的时候,大家注意,那这个时候我们还需要重新从浏览器,需要从重新从咱们的MYSQL中去查询吗?不会了,它就可以直接从缓存里面去获取了啊好,那my be体的缓存呢,分为两种,一种是一级缓存,一种是二级缓存,那首先呢,咱们先来看一下my be体的一级缓存好。
01:00
一级缓存是买杯,大家注意买杯提子中的一级缓存它是默认开启的啊,它是默认开启的,就算是我们当前咱们这个不做任何操作,你只要搭建一个满杯体框架,那它的一级缓存我们都是可以直接来使用的,OK吧,好,下面咱们再来创建一个新的工程啊,来new一个module。好ma,然后下面咱们叫做my be啊my be,然后下划线叫cache catch catch就是缓存的意思啊,好,Group ID com.at硅谷点my be OK。啊,那大家来看,那我们也是把咱们所需要的一些内容啊,全部都给它复制过来啊,比如说咱们来复制这个dynamic circle,然后把我们当前的依赖啊,还有我们的这个打包方式,然后都复制一下。好,把其他东西都给它关掉,好,然后下面咱们来导入更新,那然后再往下咱们把咱们需要用到的一些配置文件给它拿过来啊,比如说呀,然后咱们直接把这三个配置文件都拿过来,或者说把这四个呢都给它复制过来啊,因为咱们的包呢,咱们也都没有什么变化,对不对,但是咱们复制过来的这个包它好像不太对,那咱们就把它删了,一会重新创建啊好。
02:21
然后呢,我们再往下看,然后把咱们常用的这些类也给他拿过来,然后com.at硅谷,然后点买be。啊点买be,然后在点叫uts OK啊行,然后首先呢,把我们的这个啊circle session给它拿过来。行复制过来之后啊,然后我们再来创建来另一个pack AG,然后在这咱们叫pogo,好,然后把我们当前咱们的EP,然后给拿过来,我们同样是拿着咱们的员工表来做例子,OK吧,好,然后再往下,那我们就需要来创建咱们的map接口以及映射文件了啊首先咱们先来创建一个map接口,比如说这个叫什么map map,咱们叫叫catch map。
03:12
能看懂吧,好,这是接口,然后下面咱们再来创建一个啊,这个映射文件所在的包,Com,斜线at,硅谷斜线myab,然后斜线map OK。行,然后下面咱们点击右键,然后把咱们的啊映射文件来创建一下啊好,这个地方是com.at硅谷点买be.map点叫做catch map,行啊好,然后那我们把咱们不需要用的东西都给它关掉,OK,然后那我们现在就可以来做一个例子了,比如说呀,然后我们来进行一个查询,我们要查询什么呢?大家看好,叫get EP by ID是根据员工ID,然后来查询员工信息,然后在这呢,咱们来设置一个参数,叫做EPID,好,那我们是不是要在这个位置加上一个a per就叫做EPID就可以啊干什么的,然后根据对吧,然后员工ID,然后来查询员工信息,查询员工信息OK啊。
04:20
好,那我们在映射文件中,把我们当前的这个搜口语句啊,然后来写一下,大家看好。好,然后是一个查询功能,它的ID要跟方法名一致,然后下面result type的话就不用说了,是EP对吧?然后select的星from t_EP然后while e MP_ID,等于井号大括号EPID。OK,然后下面我们来找到咱们的测试类对不对,然后来把这个功能呢,咱们来测试一下。好,比如说呀,它就叫做she catch map test,然后呢,来创建一个测试方法,他布利VO叫做test get EP ID。
05:09
好,然后首先咱们第一步也是要来获取咱们的circle session,好获取完circle session之后,然后我们来获取咱们当前的这个map catch map的一个代理实现类对象,OK,然后我们下面咱们可以来调用咱们的get EP by ID方法,比如说我们现在要查询的是啊ID唯一的员工信息,OK吧,好,大家看好,那在在这咱们直接把它给输出就行啊好,那我们要怎么来测试我们当前买倍体的一级缓存的,首先大家要注意这个一级缓存的一些问题,什么问题咱们的一级缓存和二级缓存它是怎么去区分的,大家注意一级缓存和二级缓存的级别不一样。就比如说一级缓存是什么级别的,叫做circle session级别的,什么叫circle session级别的呢?很简单,就是说我们当前通过同一个circle session来查询出来的数据会被缓存,然后当我们再次通过相同的circle session,然后来查询同一个数据的时候,那它就不会从我们的MY搜狗中直接去查了,然后它就可以直接从我们的缓存里面去获取,这个大家能听懂吧,你要知道一级缓存的级别是circle session级别的啊好,下面呢,我们就可以来做一个测试了呀,怎么来测试大家看好,比如说这是我们当前咱们的同一个circle session所获取的map,我们在这呢,来查询一下,叫做E1,然后下面我们在这咱们再来大家看好啊,叫EP2,然后这是EP2,你看好一定要查询的是一个相同的数据啊,你说你在这查了个一,你在这查了个二,大家注意这能行吗?不能行吧,你在这查询的是一,那咱们往缓存里面存。
06:54
的也是ID唯一的员工啊,那你查询这个ID为二的员工信息,你得看缓存里面有没有嘛,大家说是不是对吧?好下面呢,我们来执行,大家来看啊。
07:07
好,然后咱们怎么来看出来他有没有去数据库里面来查询呢?你主要来看它当前执行了几个circle口就行,大家看就只执行了几个circle口,一个circle对吧?然后我们当前咱们是不是查询出来了两次这个员工信息,但是咱们当前的circleq执行了几次,只有一次,所以说咱们第一次是从咱们的数据库查的,咱们的第二次就是从我们的缓存里面去查的。这个大家能看懂吧,好,OK,然后下面呢,我们再往下看,那咱们说了circle session一级缓存是circle session级别的,那如果我现在呀,我在这儿我又获取了一个SQ session,那这个时候咱们查询相同的数据,大家说它会从缓存里面去获取吗?比如说我把这旮达的代码咱们再来复制一次,大家看好,这叫circle session1,这也是circle session1,这是MAP1,这是MAP1 OK吧,MAP1,好,然后下面呢,我们在这获取一个circle session2 circle session2,这是我们获取的第二个map,然后再往下一样的MAP2,点get emp by ID里面咱们再写个一,这个时候咱们就可以获取咱们的第三个emp对象,然后在这咱们再来一个输出,大家看啊,你看一下当前咱们执行的是几个circle口就完事了。好,下边我们在这,咱们再来一个执行。
08:31
好,大家看啊,咱们应该是输出的有几回啊,Circle口语就应该输出两回,首先呢是我们的EP1和EP2,它们两个用的是同一个circle语,他们不能说用的是同一个circle语句,只能说我们第一次在查询的时候通过这个circle session,第一次在查的时候在。咱们是通过执行soq语句往从咱们的数据库里面来查的,而我们当前咱们的第二次来获取的时候,直接从缓存里面来获取的,但是呢,下面大家来看它又执行了一个circle,为什么?那咱们查询的数据是不是一样的呀?对不对?为什么它又执行了一个circle呢?
09:09
大家注意,非常简单,为什么?因为我们现在咱们的circle session一级缓存是circle session级别的,而我们当前咱们查询的这个员工信息,大家说跟我们上边咱们用的circle session是同一个吗?不是,那所以说这个circle session是我们重新来创建的,那所以这里面它缓存的有咱们的员工信息吗?没有,那所以他再去查询的时候,他就得重新去查,能看懂吧?好啊,所以说咱们的my be的一级缓存,大家要知道它是什么级别的,是session级别的,什么叫做circle session级别?就是通过同一个circle session所查询出来的数据会被缓存,然后当我们再通过同一个circle session去查询相同的数据,那它就会直接从缓存里面来获取。并不会从我们的这个数据库里面重新去查了,OK吧,好在这给大家写一下看星星对吧,大家看好啊干啥的,咱们得买be提啊买be提,然后得一级缓存,一级缓存。
10:15
啊,然后my be的一级缓存是什么级别的啊,大家看好啊,来买be体,注意大小写啊,好复制,然后它的一级缓存。然后得一级缓存,然后是啊circle session级别的,什么叫circle session级别啊,然后及通过同一个circle session,然后查询的数据,然后会被缓存能看懂吧,然后咱们来使用再次,然后来使用同一个circle session对吧?然后来查询同一条数据,同一条同一条条数据对吧?好,然后会从哪来获取呀,会从。
11:09
啊,然后缓存中获取中获取还会不会从我们当前咱们的数据库里面重新去查了,大家注意不会,这就是咱们当前买be体的一级缓存,OK吧,好啊,像还有就是买be体的一级缓存,大家注意它是默认开启的啊,它是默认开启的,一般情况下我们也不会去关闭它,然后my be的一级缓存是默认开启的啊OK。
我来说两句