00:00
好,那咱们把这些东西啊都给它关掉,然后呢,大家要注意啊,咱们再说一遍,咱们当前的环境是什么,我的表里面的这个字段名咱们用的是下划线,而我们当前咱们的所对应的实体类咱们用的是驼峰,那这个时候字段名跟属性名不一致的情况,咱们通过买,然后来进行查询,然后这个时候咱们的字段能和咱们的属性对应上吗?大家注意它肯定是对应不上,它也不可能能对应的上啊。字段名跟属性名都不一样,它怎么对应的上呢?再说大家之前都写过什么,大家都写过这个啊,GDBC的工具类大家也都知道它是怎么映射的,其实就是把咱们查询出来的字段名,然后通过反射,然后来获取它所对应的属性名。对吧,然后呢,作为属性名来获取相对应的属性来进行赋值。那所以说大家想一下,在这字段名跟属性名都不一样,那它怎么进行对应对不对,所以说呢,咱们先把这个案例呢写出来,比如说呀,咱们在这来查询咱们所有的。
01:06
员工信息,然后咱们是list,然后一个先括号,然后这里面大家来看啊,或者说咱们来查询一个员工信息吧,M em MMP,然后叫get emp,然后by ID by em PID OK,然后这里面咱们应该传进来的是一个EPID,那既然只有一个字面量类型,那咱们就加上it per OK。大家看好这个功能是干什么的?咱们是根据ID,然后来查询咱们的员工信息,好复制,然后来找到咱们的映射文件,然后把这个circle语句啊,然后咱们来给它写一下select idl跟方法名一致,然后呢,Result type的话,那咱们直接写谁呀,写emp就行,对不对?好,那咱们的核心配置文件咱们是不是没有设置啊,在这咱们把这个映射文件所对应的包呢,给它设置出来,点map,然后这里面呢,应该是咱们的实体类所对应的包my be.pugo OK啊好,把它关掉就行,好然后呢,我们来写这个circle是select的星,然后from t_EP然后well emp_ID大家可一定要看好,字段名是啥,属性名是什么,知道吧,然后等于井号大括号EPIID能看懂吧,这样去写啊,然后。
02:33
下面咱们来创建一个测试类来进行测试来,然后呢,咱们这个测试类咱们就叫做什么emp,或者说叫re sumt,叫result map test test OK,然后呢,加上一个test注解public VO叫test get em by emmp ID,好啊,行,首先咱们的第一步仍然是获取circle session对象啊,点get circle session好,获取完成之后啊。
03:07
好,获取完成之后,那我们是不是就可以来获取咱们的map的一个代理实现类对象EP map.class。好,然后再往下来调用咱们当前的这个方法,比如说里面来写个一,那这个时候咱们就可以获得一个员工对象,然后咱们直接把这个员工对象给输出,那大家想想他查询出来的应该是什么样啊。字段跟字段名跟属性名一致的话,那他俩是不是应该是能够相对应的,也就是说咱们的年龄啊,包括性别啊是都能查出来的,但是呢,咱们当前咱们的员工的ID和员工的这个名称啊,大家说这两个所对应的属性,它其实它也没有相对应的属性,咱们说的对应的属性是它们有映射关系的,但是你一个用的下划线,一个用的是驼峰,它怎么能对应的上呢?是不是啊好,下面大家来看这个效果啊。
04:03
好,然后我们现在咱们来一个执行,然后大家会发现,诶,EPID为难,EP name也为难,为啥呀。那不就是因为字段名跟属性名不一致了,那它创建映射关系了吗?没有,那咱们怎么能够根据一个下划线去对应一个驼峰呢?对不对?我再说一遍,然后我们之前咱们写过GDBC的工具类,大家都知道它其实就是拿通过反射把咱们的字段名然然后来作为什么呀,作为属性名获取属性,然后来为属性赋值的,对不对?所以说在这大家看好你一定不能这样去写啊好,那我们就一定要保证字段名跟属性没一致,那它不一致怎么办?我们当时学GDVC的时候怎么解决的,大家想一下怎么解决,然后咱们是不是可以为字段来起别名,比如说我们在查询的时候,咱不要写行,写什么emp_ID然后给它起个别名,是驼峰emp下划线内,然后EP内,然后再往下是年龄,再往下是金点G啊OK,大家注意,这个时候我们再来一个查询,那这个时候大家想一下,我们查询出来的字段名是不是就变了呀,是不是就变成什么了,是不是就变成了跟咱们的属性名一致的了,对不对,好,这个时候它就能它就能够查出来了啊,那这是我们当前咱们的第一种方式,然后咱们的第二种方式呢,大家再来看啊来,我把这个东西啊给大家给写到注释中。
05:32
给大家写到注释里面。好,然后下面呢,我们再来看咱们的第二种情况的话啊,不用管它在这你该写星你就写星就完事了。知道吧,第一种方式在这给大家写一个笔记吧,好,大家注意字段名,然后跟属性名不一致的情况,字段和属性名然后不一致的情况,然后如何来处理映射关系啊,如何来处理映射关系。
06:02
如何?如何是吧,哎,如何来处理映射关系,首先看好第一步,第一种方式怎么来处理啊,然后呢,为咱们查询的字段,然后来设置别名,然后和咱们的属性名保持一致,好大家注意这是第一种,当然比较麻烦,然后咱们的第二种情况,大家看好啊,怎么做,然后当咱们的字段啊,然后符合什么的要求,符合买色的要求,要求然后使用的是什么,使用下划线。看好了啊,来使用的是下划线,然后R咱们的什么呢?这个R这个属性对吧,然后它符合咱们Java的要求,Java的要求,然后来使用咱们这个驼峰啊,使用驼峰好,然后此时大家注意他们两个都是符合规则的,对吧?那所以说呢,那咱们能想到这个问题,咱们想着他们应该是能够对应上的,因为毕竟各自有各自的规则嘛,对不对,那此时咱们可以在哪呢?可以在哎,My be的核心配置文件,核心配置文件中来设置一个什么呀,叫做全局配置,然后可以自动将什么下划线,然后应可以自动自动。
07:25
自动,然后将下划线啊,然后映射为驼峰,映射为驼峰啊。大家注意啊,可以自动将下划线映射为驼峰,怎么去写啊?咱们先找到咱们的核心配置文件,大家要知道这里面有一个标签叫做settings干啥的设置全局配置的是作用于我们当前my be的所有增删改查的功能的,知道吧,叫做settings。什么位置?Properties下面是settings,那所以说咱们要把它给写到这儿,来大家看一下settings。
08:01
你要注意这个settings,它全部都是键值,对,知道吧,Name里面写的是键,Value里面写的是值,那这里面咱们应该用谁呢?大家看好,把它打开来找到convigguration查看,第二个就是settings,知道吧,然后我们来找到这个settings,大家看里面有很多很多,你看啊,里面有很多,那我们要用的是谁?来给大家找一下。这个。不是啊,好。不是这个啊,看错了,然后我们再往下去找,大家看好,在这呢啊叫做map underscore to camel case,你双击,然后复制一下,但是你要注意你复制过来的它不对,为什么呢?因为你复制过来的时候,它把后边的这一列里面的enables也复制过来了,所以说它后边是不带这个enables的啊,一定要看好。那这个东西是干嘛的呢?叫做map,是映射underscore_to映射下划线。为什么camel case驼峰?
09:04
能看懂吧,这就是自动将咱们的下划线映射为驼峰,大家看这是咱们能用的值触和false,而它默认的值是什么?看最后一列是默认值啊,大家看一下啊,来看在这是默认值,在这咱们能用的值这一列第三列是咱们能用的值,最后一列是默认值,那所以说呢,咱们当前的这个配置,它默认值是啥呀,是false,所以说有用没有用没有用,所以咱们在这可以把它给设置为处,那大家一定要看好这个标签干什么的,看好将下划线,然后映射为什么驼峰OK啊,然后这个时候大家再来看,那我们当前咱们的S口句改了吗?没有改,我用的还是星,看到没?然后现在我们在这咱们再来一个执行,大家看啊来。好,这时候查出来了没有,查出来了,但是它的前提大家一定要记好,你可不能随便映射,随便去搭一个下划线就能映射为驼峰的,你看啊,咱们必须得符合规则,你的emp_ID它映射为什么了EP,然后ID能看懂吧?啊这还不能用这个东西啊,因为咱们的这个注释的结束符就是这个对不对?好,那咱们这样写冒号对吧,然后再往下,然后是emp,然后下划线内,然后它映射为什么了emp内驼峰,这个大家能看懂吧?啊你可不能随便让他映射啊,它必须得是具有规则的,知道吧?好啊,行,那这是我们来解决字段名跟属性名不一致的两种情况,你要么起别名,这东西咱们以后就不用了啊,起别名的这种,然后我们以后呢,大家可以用这一种,或者说你直接就把咱们的这个核心的这个什么呀,叫做将下划线映射为驼峰,直接把这一疙瘩啊,然后在这setting。
10:54
然后找到我们当前咱们的买be-config的这个模板,直接把它给加到这就可以了啊,就以后我啥也不管,我就直接把它配置上,那咱们字段名有字段名的规则,属性没有属性名的规则,咱们还需不需要来考虑怎么将它映射了,不需要,你只需要符合各自的规则,那就可以直接将下划线映射为驼峰,OK吧,好啊。
11:17
行,这是咱们的一个全局配置啊,然后来解决字段名跟属性名不一致的问题,然后下面咱们还有一个就是咱们所说的自定义映射,那自定义映射那不就是你想怎么映射就怎么映射,对不对?好,下面咱们就来看一下用自定义映射该如何处理这个问题啊。
我来说两句