00:00
好,那我们刚才呢,然后咱们是解决了多对一的映射关系,然后呢,我们是通过三种方式来解决的,首先第一种方式级联属性赋值,第二种方式association,还有第三种方式呢,也是association association,但是咱们用的是分布查询,好然后下面呢,大家注意,我们来处理一下咱们的一对多,那一对多的话,首先我们该如何在实体类中来表示一对多的关系呢?首先咱们的多对一呢,咱们说过对一对应的是对象,而对多的话,因为一个部门对应了多个员工,那所以说我们现在就要通过一个集合来表示这个部门中所有的员工信息了啊,来大家来看,所以大家以后就记着一句话就行啊,对一对应对象,对多对应集合。好,然后在这大家来看泛型,那肯定是EP,比如说咱们这个属性就叫做EPS,然后下面呢,咱们来设置一下它所对应的get跟set方法,然后再来重写一下咱们的to string就可以啊,行,那比如说呢,我们先来使用咱们的第一种方式,大家注意它的这两种方式跟咱们的多对一基本上是一致的,只不过呢,就是咱们的多对一有级联属性赋值这种方式,但是咱们的一对多是没有的啊。
01:18
那下面大家来看,那我们因为咱们现在是以部门表为主表的,所以说咱们就把方法呢给写到咱们的部门这个map接口以及映射文件中啊好大家来看杠星星回撤,咱们现在需要来获取的是部门以及部门中,然后所有的员工信息。好啊,行,那咱们的返回值同样是一个de pd对象,咱们叫做get de PT and emp,大家注意,我在以员工为主表来获取员工以及部门信息的时候,咱们叫EP and depd,而我在以部门为主表来获取部门以及员工的信息的时候,咱们用的是get dad and EP,这个大家注意啊,行,那我们现在咱们应该是以dad为条件,对不对?所以说咱们传过来一个dad,然后给它加上一个a para命名参数就可以啊。
02:17
行,然后下面大家注意,咱们复制一下,放到我们的映射文件中,把这个SQ语句来写一下,那首先呢,咱们的这个SQ语句该怎么去写,我们要讲的第一种方式是把所有的数据全部都查出来,然后呢让字段和属性进行映射,然后查询出来所有的数据。所以说在这儿咱们需要进行两表连查,而不是像我们。刚才的分布查询一样要通过两个步骤,然后来实现咱们所有数据的一个获取,当然呢,咱们的一对多里面也有分布查询,那我们现在要讲的这种方式呢,是通过一个circle口把所有的数据都查出来,然后再来设置咱们字段跟属性之间的映射啊,所以说在这大家来看,咱们用的是result map so语句,咱们可以先写一下select,形容from t_dept,因为我们现在部门表示主表,那所以说呢,那我们就用左外链接把咱们的部门表放在左边,然后left join,对吧,TT_emp然后加上on来写关联条件,T_depd.dad等于T_emp.dad。
03:33
OK,然后写完之后再加上咱们的条件啊,叫做T_de pt.dad。啊,不能有空格啊,第2DAD,然后等于井号大括号dad就可以啊行,这个大家注意,大家写的时候可以先在我们的这个可视化工具里面,然后先把SQ语句给写好,写好了之后,然后咱们再把它给复制到我们的这个ideal中啊行,那我们现在呢,咱们把它给写完了之后,然后下面大家来看,然后呢,我们现在需要去配置咱们的result map,而result map现在来处理的是一个一对多的关系,所以说首先大家来看咱们这个叫做dept and EP result map。
04:20
好,然后咱们要来处理的类型,那肯定是de PT呀,为啥呀,因为我们现在是一对多呀,我们de PT里面有个EPS属性,咱们是不是处理不了啊,所以说我们要用到result map对不对?好,然后那我们写的这个过程啊,也是一样的,首先先来处理谁先来处理我们当前主见的映射关系。这呢是dad,这呢也是dad。好,然后result来设置我们当前的普通字段,这是第1PT内,大家注意这个是属性名啊,然后在这的话是字段名,第1PD下划线内幕写完之后,那我们现在该如何处理一对多的这个字段呢?因为咱们的一对多的字段呢是一个集合,所以说在这咱们需要用到的标签叫做connection,而connection就是专门来处理一对多的关系的,换句话来说,Connection专门来处理集合类型的属性,而我们的属性名叫EPS。
05:24
然后我们在处理多对一的时候,我们所用到的另外一个属性叫做Java type,那大家说我们现在咱们还需要设置Java type吗?大家想想,首先connection来表示的就是集合的意思对不对?既然我们用到了connection标签,那说明我们当前所处理的这个类型,它一定是一个集合类型,而我们现在咱们要想来设置字段跟属性的映射关系,我们还需要知道这个集合类型的什么,是不是还需要这个集合里面所存储的数据的类型。大家说是不是只有知道了这个类型,我们是不是才可以根据类型来获取属性,把我们所查询出来的字段,然后和属性创建映射关系,来创建我们当前该类型的对象,然后再把每一个员工所对应的对象放在这个集合中,然后这个时候咱们就可以获取一个完整的部门信息了,对不对?所以说大家注意,这咱们用的并不是Java Type Connection中咱们需要用到的叫of type什么意思?叫做集合中的类型?
06:32
那集合中放的类型是什么?EPS中来放的类型是不是应该就是员工信息,所以说在这是emp,大家看好啊,行,然后咱们设置完成之后,那我们下面咱们是不是就可以来设置字段跟属性的映射关系了啊,ID property,然后column字段,然后属性名分别是ID,这也是EID复制复制复制然后啊。
07:01
等一会啊,这是咱们的result对吧?来复制一下咱们的属性名EP name,咱们查询出来的字段EP下划线内对吧?还有咱们的A级属性。好,然后对应咱们的A字段,然后呢,Sex属性对应sex字段,然后email属性,然后来对应咱们的email字段,OK,这样就可以了,然后下面把我们创建的result map的ID,然后放在我们当前的select标签中就可以,下面呢我们就可以来测试一下了,大家注意啊,我们在这儿是并没有去设置员工里面所对应的部门信息的,所以说呢,咱们也不应该设置,为什么,如果你设置了,你会发现员工中有部门,部门中有员工,员工中又有部门。这不就变成套娃了吗?对不对?所以说大家注意,在这儿呢,咱们就不需要设置了,而且在我们真正开发的过程中,咱们一定是有一张主表的,你要么是用来获取员工所对应的部门信息,要么是用来获取部门所对应的员工,并不会说我要获取的部门中员工,员工中还有部门,像这种循环的情况知道吧,好啊,行,然后下面咱们来测试一下功能啊,首先a test,对吧,然后public VO叫做test get DEP and e and and,然后emp括号,好,首先咱们也是circle session us,先来获取咱们的circle session,再来获取我们当前咱们的map对象,然后呢,我们现在操作的是depd map,那所以说我们需要来获取的就是depd map的对象啊,然后来调用咱们的这个方法,Get depd and EP,比如说我们就来获取。
08:52
据did为一的部门以及它所对应的员工,然后咱们下面呢,把它给输出一下,大家看啊好看能不能获取数据,大家一定要注意它跟咱们的association的区别,Association我们是需要知道这一个属性的类型的,而collection我们是需要知道这个集合中所存储的类型的,所以说它所用到的属性不一样,然后这里面咱们用到的属性。
09:22
大家来看啊,叫做Java type,而咱们的这个一对多里面,咱们用到的属性叫做of type,这个大家注意啊,行,下面我们在这再来一个执行,大家看一下能不能查询到数据啊,大家看有问题没有,没有问题对吧?这是dad,这是第1PD内,这是我们当前这个部门所对应的员工信息。没问题吧,一共是两个。OK啊,那这个是我们一对多的一个映射关系的处理啊,好,所以说我们在这来写一个笔记,大家来看啊,这个叫做处理来处理咱们的一对多的啊。
10:02
好,然后咱们来处理一对多的映射关系,首先第一种方式,Connection。OK吧,咱们刚才用的就是collection,那其实咱们的第二种方式直接给大家写了,叫什么分布查询。OK,分布查询,然后咱们再来找到咱们的映射文件,把我们当前咱们这里面所用到的标签。和属性来写一下,首先咱们的connection,然后是用来干嘛的,用来处理大家看啊,用来处理咱们的一对多的映射关系。好,然后呢,这个property咱们就不说了,这个property就是我们处理一对多映射关系的属性,而of type然后来表示的是表示然后咱们的该属性所对应的集合中存储数据的类型啊,这个大家注意啊,表示的是该属性所对应的集合中存储数据的类型。
11:09
哎,一定要看好,OK,那这个是咱们一对多的一个关系的处理,大家注意啊,这是咱们的第一种方式。
我来说两句