00:00
好,那咱们特殊的circle的执行呢,咱们讲完之后,下面咱们要来学习一个非常重要的问题,叫做自定义映射啊,叫result map,那这东西其实我们之前咱们也见过呀,在我们执行查询功能的时候,对吧?咱们查询功能的标签里面呢,咱们是不是需要来设置一个result type或map read type里面写的是一个具体的类型,比如说字段名跟属性名一致,咱们要写的是一个实体的类型。或者说是一个map,然后或者说我们现在查询单行单列的数据,咱们要来写string,或in t或double,对不对?像这些好,那result map它是来处理什么问题呢?比如说字段名跟属性名不一致,或者说是我们当前多对一或一对多的关系,那咱们就需要通过map来处理了。好,那首先呢,咱们在这咱们先再来创建一个微本工程,然后专门来测试咱们的map的功能啊来在这咱们点击右键去new一个module。
01:01
然后next,然后它叫做my be杠。然后叫做result map。OK,好,然后他的group ID,咱们还是com点艾特硅谷点MYVE。好设置完成之后,然后我们把咱们的这个依赖,然后给它复制过来,然后放在我们当前的这个工程中,然后导入更新。好,然后这个设置完成之后,然后下面咱们再把咱们的一些资源呢,给它复制过来,就比如说咱们的配置文件GDBC.properties然后还有呢,就是我们的这个logo for点叉,然后咱们把这两个都拿过来啊。好,然后再往下呢,然后咱们需要来创建咱们my be的核心配置文件,叫做my be my be,然后杠conf,点叉L,然后这里面还是空出来了两个内容,一个是咱们类型别名所对应的包,还有咱们的映射文件所对应的包。
02:02
好,然后呢,我们可以在这呢,把咱们的这个工具类啊,然后也复制过来叫com.at硅谷,然后点my be,然后点叫utsk。好,然后大家看一下应该是circle。好,复制过来之后,然后咱们可以把其他的一些包也创建一下,比如说咱们的实体类所对应的包叫PUGO,还有我们当前咱们的map接口所在的包,咱们叫做。Map,然后还有就是我们的映射文件所对应的包,对吧。斜线A、硅谷斜线my be斜线。Map。OK好,然后呢,我们这一次咱们的操作呢,然后咱们来换两张表啊,然后比如说我在这把这个测试表给大家创建出来,首先第一个表啊,咱们叫做T_EP。
03:00
然后这里面咱们的这个字段呀,然后咱们就按照MYSQL中的规则去写,比如说我要表示员工的ID,咱们叫EP_ID它的类型int,然后呢,主键自增。然后EP下划线内幕,这个是员工姓名,然后在这咱们来设置一个瓦恰长度是20,好,然后再来写一个年龄对吧,然后是in特类型,然后再写一个金T啊金性别。然后是恰类型,OK,就这样就可以啊好,然后咱们把这个表创建完成之后,下面咱们再来创建一个叫部门表,叫T_de pd。然后这个呢,叫de PT_ID部门的ID类型int组件自增,然后de PT下划线内幕叫做部门名称晚下类型长度20 OK,那大家都能够看到,他们两个呢,应该是一个什么关系啊,员工对部门应该是一个多对一的关系,那所以说咱们现在有关系之后,那多对一的关系,我们是不是应该要把关系设置在哪多的这一方,也就是员工的这一方啊,所以说在员工表里面应该有一个叫做dept_ID,的一个字段,Int类型表示当前的员工所对应的部门ID,行,OK,大家注意,这是我们当前咱们的。
04:29
这两张表,然后我们可以给他添加一些测试数据啊,比如说员工姓名叫做张三啊,然后年龄是20啊,然后性别咱们给他一个男。行,然后再往下,然后这是李四,然后下面是王五,王五对吧,然后赵六。OK,行,然后22 23 24 OK,然后都是男。行,然后这个写完之后啊,然后下面呢,我们再来看部门啊,部门的话,咱们就随便写A部门,然后B部门,然后C部门,OK啊行,写完之后呢,我们再来看咱们的员工,那既然咱们当前的员工和部门是多对一,那所以员工所对应的部门,大家想想是不是应该用到的是部门中的这些部门ID,咱们在这是没有创建主外建关联的,当然大家可以创建,你也可以不创建,如果不创建的话,大家要知道他们之间的关系啊,比如说张三在A部门中,李四B部门,然后王五C部门,赵六也在A部门,OK啊,请大家注意,这就是我们。
05:39
添加的一些测试数据,好,然后下面的呢,我们就要来解决第一个问题,什么问题呢?咱们把上面这些东西给它关掉,然后我们要解决的第一个问题就是我们的实体类该如何设置,因为大家都知道这下划线是我们在设置表里面的字段的时候的一个规则,而我们当前咱们的实体类的规则呀,用的是驼峰对吧?所以说在这大家看好,我把EMMP创建出来,然后private in tIgEr类型,咱们应该叫epd,能看懂吧,Private,然后string类型的EP内膜,然后再往下,然后是in tIgEr类型的A级,然后再往下是string类型的gender OK,咱们就先写这四个啊,然后等到一会处理多对一和一对多关系的时候,咱们再去设置其他属性,好,然后咱们给它添加一个有参构造,然后再来给它添加一个无参构造,然后再来给它设置它的get跟set方法。
06:40
敲错了啊好,然后在这咱们再来给它设置它的set跟get方法。然后还有呢,就是咱们的to string方法OK。好,那这个时候大家会发现一个问题,字段门跟属性门一样吗?不一样,那不一样的情况下,那这个时候我们应该怎么去做呢?就比如说咱们把部门咱们也给它创建出来啊,然后咱们先以员工表,然后来进行测试,然后咱们现在主要来解的解决的就是字段名跟属性名不一致的情况啊好,大家看一下这个表,咱们这个实体类咱们就叫第1PT,然后private,一个in tIgEr类型的第1PTID,然后private string类型的dept内,OK,好,然后下面这是有参构造,然后这是无参构造,然后再往下呢,咱们来设置它的set跟get方法,然后最后再来设置它的to string方法,OK,完事啊。
07:41
行。大家来看一下,那我们现在咱们的这个实体类跟咱们的表就已经创建完了,那下面呢,我们是不是就要创建咱们的map接口,然后还有咱们的映射文件对吧?然后咱们先以我们的员工表来进行测试啊,然后叫做em map啊map,然后再往下创建咱们的映射文件对不对,然后来另一个买be提斯杠map,大家看好是这个模板,咱们也叫做emmp map就可以啊,咱们要来保证它的name space at,硅谷点买be.map点什么EP map要把它和咱们当前咱们的员工他的一个map接口的这个权利名保持一致。
08:24
好啊。那行,那咱们现在的准备工作呢,就做完了,做完之后呢,咱们就来演示一下字段名跟属性名不一致的情况,它会出现什么问题,那咱们又该如何解决这个问题呢?OK吧。
我来说两句