00:00
啊,我我们继续啊,那接下来呢,我们来给大家去说一下啊,刚刚我们使用过的这个collection啊,那么它其实呢,也是支持我们的分布查询的啊,所以说我们接下来说的就是好collection,然后呢,使用我们的分布查询,那我们来看一下,呃,在这个呃分布查询里面呢,我们还是先来题目上一个这个需求啊,还是根据我们刚刚写的这个需求来做,就是我要查询我们的部门信息啊,并且好查询我们这个部门下啊所有的员工信息啊,这是我们现在呢要去查询的这个啊数据啊,那么对于这个数据来讲,我们就可以使用这个分布啊,怎么分呢?第一步我先根据部门的ID查询部门的信息啊,那么其实我们查出来这个部门。
01:00
在这个ID呢,我们是不是就可以把它当成这个员工的一个外建来使用了,对不对啊,哎,说说我们这什么啊,再根据接下来就是什么,再根据部门的ID啊,作为我们这个员工的啊,外界来什么查询我们这个所有的员工信息,那你看一下我们是不是也把它分成了两步了,对吧?呃,那么分成两步以后,那么接下来我们就来看一下,呃,查询部门查询这个ID对吧,就查询这个部门的这个信息呢?啊,那这个我们是好写的对吧?Ex个SQL就把它写出来了啊对于这个根据员工,根据部门的ID查询员工的这个所有的信息,对吧?就相当于我们要通过一个员工的外件去查询员工信息了,那么这个方法呢,我们需要提前给他先写出来,因为这个本身是属于要查询员工的,所以说呢,现在我们先回到我们的员工里面,我们要去加上一个方法,什么方法呢,我要查询到所有的。
02:00
员工对象啊,就是我们的employee,刚说有的员工对象怎么查呢?哎,通过get emps by什么呀,BY这个did是通过一个外键来查啊,对吧?A这类型的一个did啊好,来把这个方法呢,我们来写一下,拷贝一下,好放到我们这个映射文件中,写到这个位置,好这也是一个select ID呢,就是我们的方法的名字,然后这个我们可以使用这个量check吧,对吧,因为从单表里面查嘛,我们就可以直接来让他来映射了啊好,最终查到的呢,还是一个引employ对象,只不过它是一个集合啊来我们写一下select ID啊,Last_name email gender,然后呢,From我们的t employee为R什么呀?D_ID是不是等于一个井号大括号E啊。能看明白吗?可以吧,OK,那么这就是通过我们的诶一个外界来去查询我们所有的员工信息,最后呢,得到的就是一个激活,好,那么接下来我们再回到我们的部门里面,那么我们现在呢,就可以去写了啊,你看我要去查询我的department啊,Get dept and emps,然后它也是一个step好,分布的好,加上我们的F这个类型的这个ID啊,好把这个拷贝一下。
03:26
然后呢,放到我们这个里面来吧,写一下吧,Select ID还是我们的方法的名字,好,这个地方肯定是map了啊,然后把这个map呢给大家写出来,呃,最终查回来的这个类型的话呢,依旧是我们的哎,Department对吧,因为现在我们主要是查部门嘛,好把它写到这ID的话呢,我们就叫做什么my dvg and emps STEM,好吧,取个名字,把这个呢拷贝到这个位置,OK,那接下来我们就可以去写了啊,怎么写呢?首先我们第一步先根据部门的ID查询部门的信息,那我们写的就是select ID,然后呢,Depg下发下内容啊,From tpl dept v ID等于井号大括号ID是不是三了。
04:18
对吧,那么写好以后呢,在这个位置我们来做一个映射啊,还是先以它为基准,先映射我们的部门啊,那我们写的就是ID,把你结果集的这个ID呢,映射到我们的ID属性上,然后呢,把你结果集里面的de BD下划线内容呢,映射到我们的写上面啊,哎,Department内容上面是不是映射好了,好,那么接下来我们要映射它里面的那个emps,那我用的是一个collection,这里面呢,给这个emps赋值,但是现在呢,我们就要通过什么呀,还是通过一个select去调用一个查询,调用哪个查询呢?调用的就是我们员工里面的这个查询吧,对吧?所以说我们来先翻到上面,把这个name space的值给它拷贝上,放到这个位置,它里面的一个查询就是哪个查询啊,诶,就是我们的这个查询,好把它也拿过来放到这个位置,看明白了吧。
05:18
好,把这个写好以后呢,那么再接下来我们注意,因为我调用这个查询的时候,是不是也得给人家传一个参数过去是吧?那么我们要传个参数呢,使用括号,那我们给他传,传谁过去啊,是不是我们部门的ID啊,部门的ID就是员工的外键嘛,所以说你把这个ID传过去,那么它也就给给你啊,查过来一个集合给到它上面,而它呢,就复制到我们的department面这里面了,听懂了吗?这也是一个分布,查询好就写好了,来吧,写好以后呢,我们也来直接做一个测试啊。嗯,再写一个方法吧,啊,就是我们collection的一个这个step啊,分布查询,呃,这里面我们调的方法就是micro点是不是这个呀,对吧,比如说我还查四部门的,好,那我们就能查到这个数据了啊大家来看结果。
06:14
啊,你来看一下结果呢,肯定是没问题的,但是呢,我们看一下总共呢,是发送了两条so口语句啊对不对,OK啊说这个的话大家应该能理解了,那我们现在的人就把它这个延迟加载也说了吧,那你说现在我们使用的是一个分布查询,那你说它支不支持延迟加载啊,肯定也是支持的,对吧,那怎么去使用延迟加载呢?啊,我们现在呢,直接用就行了,因为我们刚刚呢,已经把这个延迟加载需要配的这个三体的是不是也配好了,所以说现在我们本身,诶这个分布查询呢,它就是支持延迟加载的啊,你来看一下注意了啊,我来测试,那么测试的时候呢,我光看部门啊,比如说我先不看这个员工,光看他呢也不行,我光看部门里面的一个名字啊,改成部门的名字行吧,来们写一下。
07:04
看一下是不是只有一条色和尾距啊,对吧?那么同样的道理啊,呃,我这个位置呢,还是先给他输出一个分割线,突然呢,诶,我又想看他的这个员工了,好,那么我们来看这个效果,好,大家来看,首先呢,诶,你观看部门名字,那我就发送这样一条SQL,然后等我发现,诶,你要去看这个员工信息了,那行我再给你额外的发送一条SQL,那么这个SQL的发送一定是延迟的,对吧?一定是延迟的啊,那么现在我们再来分析一下,它的意义就十分重大了,你想一下,我单纯的想看一个部门的名字,我有没有必要把部门下面所有的员工给你查出来啊,没必要。对吧,所以说这个延迟加载我们就必须要去使用的,好吧,哎,这就是我们的collection它的一个什么呀,诶分布查询,并且呢,也支持我们的延迟加载啊,我们就一并给大家去讲完了。
我来说两句