00:00
好,那我们刚才呢,然后咱们解决了字段名和属性名不一致的情况啊,然后下面呢,那我们来说一下咱们的多对一的映射,然后以及一对多的映射。好,首先咱们先来讲这个多对一的映射啊,那大家来想,咱们的表和表之间是有关系的,那我们的表所映射的这个实体类和实体力之间有关系吗?咱们是不是也要来设置他们之间的关系对吧?就比如说我们当前咱们如何去描述我们的员工所对应的部门,然后咱们又该如何去描述咱们的部门所对应的员工呢?因为咱们的表是存在关系的,那所以说他们两个所对应的这个实体类呢,也必定会有关系啊,那我们该如何去设置?其实非常简单,大家只需要记着多对一对一的时候,咱们来创建一所对应的对象就可以private det,那这个时候咱们的第1PT是不是就来表示我们当前这个员工所对应的部门对象对不对?而我们一对多的时候,咱们只要来设置对多我们当前这个部门所对应的员工的集合就行,因为咱们的一个部门对应的是多个员工,所以说咱们只需要来设置一个员工的集合就可以了啊好,那我们的一对多咱们一会儿再设置。
01:19
那首先呢,咱们在这个员工实体类中设置了部门的这个属性之后,然后下面咱们来设置它的get跟set方法来啊好,Get跟set方法,然后呢,To string,咱们也重新的去生成一下啊来。行,然后至于咱们的构造器呢,咱们就不设置了,OK吧,啊,构造器的话,咱们就只需要有咱们的这几个普通字段就可以啊,普通属性就可以,好,然后下面大家来想,那为什么我们要单独来处理这个多对一和一对多的关系呢?首先大家想一下,我们现在呢,咱们需要来查询的是我们的员工以及员工所对应的部门信息,那我们当前咱们的部门信息,咱们可以通过量表联查,把员工以及员工的部门查出来,但是咱们查询出来的字段叫什么,是不是应该叫做dad以及de PT下划线内对不对,对吧?而这个时候大家来想,那我们当前咱们的这两个字段能和我们的这个属性能够进行硬上吗?
02:22
映射不了吧,首先名字不一样,如就算是名字一样了,但是咱们现在咱们数据库里面所对应的字段的类型是int类型,以及咱们第1PT内的一个瓦卡类型,对不对,那它能对应我们当前咱们的一个实体类类型嘛,对应不上,那所以说我们现在就只能通过我们的result map来自定义这个映射关系啊好,那所以说呢,大家来看我们当前咱们的多对一呢,这个映射关系的处理,咱们也有三种方式,咱们一个一个的来讲啊,来处理咱们的多对的映射关系。
03:03
关系好,然后三种方式,首先第一种方式来咱们来看啊,首先呢,大家看啊,我们在咱们的这个map接口里面呢,然后咱们再来写一个方法啊,杠星星回车来查询员工以及员工所对应的员工所对应所对应的部门信息。好,然后呢,它的返回值应该是一个emp,对吧,比如说咱们就只查某一个员工OK吧,然后呢,在这咱们叫做get emp,然后dept啊,或者说get EP and de PT。好,然后括号,那在这既然咱们要查一个,那咱们就根据ID来查,比如说这里面咱们传进来一个int类型的EID,或者说是in tIgEr类型的EIOK吧,咱们在这呢,给它加上一个A的per,就叫做EI啊行,那我们现在呢,咱们复制把它放到我们的映射文件中,然后咱们把这个功能呢,然后来做一下啊,咱们把它给写到哪呢?咱们就把它给写到这儿啊行,然后一个select的标签,保证我们当前咱们的ID跟方法名一致,那在这用的typeb肯定不行吧,为什么?因为咱们的这个emp中有一个de PT对象,然后呢,我们查询的字段,你最多只能查询出来员工所对应的ded以及de PT内,他们能和我们的de PT属性对应吗?对应不了,所以说咱们只能用result map啊行,首先呢,咱们先把这个S句来写一下。
04:46
那咱们的SQ语句呢,咱们应该怎么写,我们现在是不是既要查员工信息,又要查我们当前的部门信息,那所以说我们应该怎么去做呢?大家想一下。啊,我们应该怎么去做,那我们通过一个circleq要查两张表中的信息,是不是就要就要用到两表连查了,对不对,而我们的两表连查,咱们可以使用内连接,也可以使用外链接,右外链接对不对?好,然后在这儿呢,我选择使用左外链接,然后来给大家去写啊,好,当然呢,内连接和右外链接可不可以呢?也是可以的,大家要知道咱们的不同的量表连查的方式,他们查询出来的结果有什么不一样,OK吧,好啊。
05:30
行,然后比如说select行,然后from t_emp然后呢,Left Joy,然后提下划线de PT。然后我们下面是不是要通过我们的on,然后来写咱们的关联条件对不对,怎么来写咱们的关联条件是不是应该是T_ep.de等于T_dept.dad然后这个时候咱们是不是才能够查询出来某一个员工所对应的部门信息对不对,然后再加上我们的条件叫T_ep.eid,然后等于井号大括号EI。
06:14
OK,这个大家注意,咱们可以复制一下,然后先把它放在咱们的circle样里面,然后咱们测试一下啊,比如说咱们来查询1EID为一的这个员工,以及他所对应的部门F9,大家看一下查出来了没?查出来了吧,所以说我们现在咱们要做的是不是就是把我们的e EP name age sex,还有email,然后把这五个字段,然后去对应咱们员工的这五个属性,然后再把我们所查询出来的de及de PT下划线内幕,然后去对应我们当前咱们的第1PT对象中的属性,大家说是不是?所以说咱们现在要想解决这个问题啊,我们就有三种方式来大家看啊,首先咱们的第一种方式叫做集联,叫做级联属性扶持,怎么来写呢?简单,首先result map ID,咱们就叫做EP and。
07:10
Dept,然后result map OK,然后咱们叫做one,这是咱们的第一种方式,OK吧,好,然后呢,咱们要来处理的类型呢,不用说还是咱们当前的EP,为啥?因为我们当前的这个SQ去查询出来的,它就是咱们的员工信息,只不过就是咱们员工里面的一个属性啊,跟我们当前所查询出来的字段,它无法映射,而我们现在要做的就是要把咱们的第1PT和我们所查询出来的字段创建映射关系,自定义映射关系,OK吧,好,那那咱们把这个result map的值呢,然后咱们给它放进来,然后下面咱们就可以设置映射关系了,首先呢,咱们说过这里面啊,然后我们要通过ID设置主键的映射关系,然后再通过我们的result来设置普通字段的映射关系,OK啊,行。
08:08
大家来看,首先这个怎么写,是不是应该是EID,然后它所对应的字段也是EID,然后呢,咱们还有emp下划线啊,这是属性是emp内,然后column的话是不是应该是emp下划线内,OK复制,然后这是。年龄。好,然后这个是sex sex,然后这个的话是不是应该是email OK吧,那关键是我们当前咱们剩下的两个字段,比如说我们的dad和de PT下划线内这个东西该怎么映射呢?大家想一下,我们能不能拿着dad和de PT下划线内幕直接去映射咱们的de pd属性啊,不行,我们应该是拿着它去映射咱们de PT中的ded属性和de PT内幕属性的。所以说在这咱们的DE1种方式,就是咱们的级联属性怎么写,叫做de PT,这个大家注意,这不就是我们当前要操作的EP这个实体类中的第1PD属性吗?对不对?然后再往下,咱们要把我们的column,咱们的dadd给赋值给谁呢?把它跟谁进行映射呢?跟咱们de PT对象中的dad属性进行映射。
09:28
OK吧,包括这个地方的话,咱们应该写的是第1PT name,而我们所查询出来的字段是不是叫做第1PT_name。能看懂不?大家注意,这就是我们当前咱们的一个result map,然后通过级联属性赋值来解决咱们多对一的映射的问题啊好,那下面呢,我们来进行一个测试啊,大家来看咱们把这个呢,然后来给它复制一下。好,然后这个咱们叫做get EP and de PT,好啊行,然后我们现在咱们要来指访问的方法叫做get e p and de pd,然后这写个一,然后最终咱们的返回值是一个EP对象,咱们直接把它给输出就行啊来咱们来看一下咱们能不能来查询到我们相对应的一个结果,那我们现在咱们要的结果,那不就是我们要把咱们当前所查询出来的字段,要把我们所查询出来的部门信息复制给咱们的EP中的de pd对象吗?大家看一下有效果没有,有效果没有任何问题,所以说呢,我们现在咱们就通过级联属性扶持的方式来解决了多对一的问题啊,当然呢,这一种也是咱们最简单的方式,但是呢,呃,至于我们以后咱们该用哪一种方式的话,然后咱们一会儿再说对吧,然后其实这种方式虽然说简单,但是以后咱们用的并不多。
10:56
啊行OK,大家看第一种方式叫做级联属性赋值,叫做级联属性,级联属性属性复制OK啊然后呢,我就不把咱们这个标签呢,然后复制到咱们的这个Java代码里面了啊,然后我就在这给大家写一下,然后这个是咱们多对一多对一对吧,然后映射关系啊处理多对一映射映射关系映射。
11:30
映射对吧,然后关系方式一啊方式一。魔幻手机方式一对吧,什么呢?叫做级联属性复制,OK啊行,那这是咱们的第一种方式啊。
我来说两句