温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:01
啊来,接下来呢,我们来给大家去讲一下买be里面的这个,呃,结果级的映射方式能听懂吧?结果级的映射方式也就意味着我们现在要研究什么呢?研究的就是当我从数据库里面查到一个结果集以后,买be它是怎么把这个结果集里面的数据给我封装成具体的Java对象的,就是研究的这个过程听懂了吧?OK,那么其实我们有两种方式啊,第一种方式呢,我们叫做自动映射,第二种方式呢,我们叫做自定义映射,那么我们先来说自动映射,因为我们一直都在用它,而且对于自动映射来讲,我们不需要做什么事儿来看,呃,其实这个自动映射呢,我们主要是通过一个tap,就是我们刚刚刚研究过的那个家伙,对吧,你通过它呢,去指定上一个具体的Java类型,那么买白呢就可以啊,把一条数据呢,给你封装成对应的这个Java类型了,这叫做自动的自动映射,明白吧,但是呢,诶它自动映射呢是。
01:02
需要有一些配置的啊,注意有一个叫做automatic behavior,它的默认值呢,是它这个代表着已经开启了自动映射的功能了,但唯一有一个要求就是什么呀?就是你要要求你的这个列名呢,必须要跟你的属性名是一致的,这样我才来给你映射成功,对吧?那我们现在就来回想一下,我们在讲买贝蒂斯的第一堂课的时候,我们那会儿也没有采取什么别名啊,也没有开启下滑线的驼峰的命名,其中那个拉name是不是就没值啊,因为它就是列名跟那个属性名不一致,所以说呢,我是映射不成功的,那么这就是我们的自动映射它唯一的一个要求,但是这个问题我们是能解决的,怎么解决呢?我们再加上一个什么呀,叫做map,安斯克to camera case就是我们的一个映射下划线到驼峰命令,把它加上以后,那么这个下划线到驼峰的这个问题是不是也就解决了,对吧?
02:02
那么基本上这个配置再加上这个配置,我们就能完成大部分的一些结果级的映射了。听懂了吧,但是呢,它只能完成一些比较基本的一些应用社,什么样的基本的呢,就是单表的查询,它是没啥问题的。能理解吧,如果说我现在换成了多表的查询,那我回来的结果集里面不仅仅只有一个表的数据,对吧?那么我们知道的是每一个表应该都要去对应一个Java里面的类,对吧?那你结果集里面有不同表里面的数据,那其实应该要封装成多个对象的,你能想明白这个吧?这个时候买be的自动映射,它就搞不定了,我们就必须要手动的自定义把它映射出来。听清楚了吧?OK,所以说呢,先在给大家去讲一下这个自动映射它的一个原理啊,那么其实这个自动映射我们能不能取消呢?也能取消,你就把这个值呢,给它设置为空,那么它就会什么取消掉了,但是呢,千万不要去取消,听懂了吧?啊,有这个功能多好用啊,你把它取消掉干嘛是吧?所以说我们知道一下它的原理是什么就行了啊,那么这个东西给大家去讲一下,大家其实也都会用了,这个red大刚刚也给大家去说了啊,都会用了,那么接下来呢,我们主要是来研究一下,当自动映射完成不了的时候,我们如何通过自定义的映射去完成,明白了吧。
我来说两句