00:00
来,那么接下来呢,呃,我们就来结合上我们的my bed啊,再结合上我们已经学过的啊一些这个持久化的一些什么技术,我们给他们呢做一个简单的对比,然后呢,跟大家说一下我们为什么最终要去采用我们的买be,而不是说使用我们原先的啊,已经学过的一些技术啊,啊那么我们要从我们最原本的JBBC来去说起,是吧?啊,因为这个大这个家伙的话,就已经什么很底层了,对吧?啊,已经什么不能再去底层了,我们学的是不是就是JDBC啊对吧?OK啊,那么我们就拿这个JDBC来说起,首先我们来分析一下这个JDBC呢,它有什么好的地方,有什么不好的地方。就是大家已经用过了啊,你自己感觉一下这个东西哪些好哪些不好。能感觉出来吗?啊,你就去想一下,你在写GDBC的时候,哪些东西是你觉得哎哟写起来很舒服的,哪些东西是女生写起来这个很繁琐的,很麻烦的。
01:07
对吧,结合上你自己的感受来想一想。啊,你要说没有这种感觉是吧?啊,那只能说明你这个东西写的是比较少的啊,如果说你的GDBC写的很多是吧,相应的这个真山打杀操作写过好多次,那么你绝对是有一些感受的啊,来吧,我们就来说一下,对于这个JBBC来讲,我们先说它的好的地方,好的地方是什么呢?它特别灵活。没有比他更灵活的了,为什么呀,因为每一步操作都是我们自己亲手去写的,能理解吧,那么这样的话呢,我就可以什么参与到你的每一个过程中,几乎可以在每一个过程中去啊,做一些什么。
02:00
我们自己想做的事吧,对吧,哎,所以说这个东西是特别灵活的啊,这个是我们必须得承认的,但是呢,它也有有有几个什么比较什么致命性的一些什么不好的地方,比如说第一个就是我们搜口语句,我们是写到这个Java代码中的。大家想想是不是你在每一个DAO方法中,是不是都要去先写一个骚口L语句,然后呢,在围绕着这个S语句去做你接下来的正常改查操作吧,OK,好,但是呢,大家注意这个SL语句呢,是很容易发生改变的,就这它我们会去改这个SQL语句,因为我们的业务只要一变,我们就会去改这个SQL语句,或者说后续我们再去做一些优化的时候,我们也要把一些什么啊,性能不好的一些SQL语句呢,给它做一些优化,那么我们就来想,只要SQL语句一改,我们对应的代码是不是就得改,对吧?所以说呢,这是一个耦合度特别高的一个硬编码的一个问题,那这个问题是特别致命的,能明白吧?哎,特别致命的啊,好,再来看。
03:04
然后呢,维护起来肯定也是不方便的,比如说诶,你只要这个骚货发生了变化了,那么频繁修改还是情况就还是比较多见的,只要你一改,那么我们相应的就要去改代码,代码一改呢,我们相应的就要什么重新去要啊,编译重新去啊,打包重新去发布,重新去部署等等一些操作啊,是为什么只要你改那个搜后语句啊,就是牵一发而动全身了,对吧,这就是他什么比较致命的几个地方啊,但是呢,我们也不得不承认人家是什么特别。灵活的能理解吧,哎,特别灵活的,好,那我们再来看一下,呃,下面这个地方提到的这个哈ne和这个GGPA呢啊,我们就拿这个哈net来讲吧,虽然说我们没有学过啊,但是我一描述你大概能理解。这个有什么好的地方呢?啊,有什么好的地方啊,哎,就是我们刚刚提到的,它是一个全自动的OM框架,能理解吧,全自动是什么意思呢?就是啊,几乎所有的JDBC设这个DAO的操作都不需要我们去做,明白吧,你只需要去完成一个映射的配置,然后呢?诶,接下来所有的操作它都能帮我们去完成,也就意味着这个框架用起来其实是特别简单的。
04:22
能明白吧,就是开发起来特别简单啊,就是简化了我们很多很多代码。对吧,这是人家这个帮我们做的一个好的地方啊,但是呢,我们再从它这个本质上来去想一下,它也有一些不好的地方啊,比如说因为它是一个映射的一种框架啊,所以说对于一些这个比较长的,比较难的一些这个复杂一点的后语句啊,比如说你想去做一些什么比较复杂的操作,那么你在这个映射上面做起来是比较麻烦一点的。理解吧,所以说呢啊,他这个对哈佛大小而言呢,处理起来呢,啊,也不是很容易的啊,不是说他处理不了啊,它有办法去处理,只不过呢,是比较麻烦一点,听懂了吧,另外一个它内部自动生产的soq呢,我们不容易去做一些什么特殊化或者是定制化,这个S语就是人家根据你的映射来生成的,我们就没有办法去做一些什么定制啊,我就举一个简单的例子,比如说现在呢,我想从两个表中查数据。
05:18
能理解吧,那么你配好了这个映射以后呢,哎,比如说我希望他们两个表连的时候呢,是通过内连接来连的,但反而呢,它生成的时候呢,就是通过一个外连接去连的。对吧?啊,这样的话就跟我们的想法就有点什么出入了啊,就是简单举个例子而已啊,然后呢,我们不容易去做这个特殊化啊,或者说我们做这个定制化,OK,然后下面说到就什么全映射的一个全自动框架,那么这个有什么不好的地方呢?就是呃,大量字段的这个po周进行部分映射是比较困难,啥意思呢?比如说我的一个表中啊有十个字段,那么对应着我的一个类是不是就有就得有十个属性啊,假如说我仅仅想去查询某个类中的某个属性,那也就意味着我仅仅想查询某个字段吧?啊对于哈根纳导而言来讲比较麻烦,因为它是一个全自动的映射框架,它只要一查就要把你当前所有映射过的字段全部给你查出来,能理解吧,所以说对于部分映射来讲是比较困难的。
06:25
能明白这个意思了吗?啊,那么也就意味着全自动不一定好是吧,虽然说我们感觉上这个全自动啊,几几乎什么都不用我们去管了,但是呢,它不一定就是好的,不一定就是安全的。这个大家是能理解的吧,对吧?啊,你就拿我们这个生活中的例子来举一下,现在我们几乎都是什么各种智能,什么东西都智能的了,是吧?啊然后呢,他就是在什么帮我们去简化各种各样的操作,然后呢。是不是更加的方便于我们这个生活啊,对吧,但是你觉得这些东西就好吗?
07:01
好不好,就是解放了你的双手是吧,将来解放了你的思想啊,什么都帮你解放了对不对啊,将来就是什么呀,啥都不用你干是吧?啊等你一出生了以后呢,国家就给你什么分配了多少钱是吧?这就是你这一辈子的钱是吧?然后你就慢慢花就行了,你什么都不用干对吧?啊,这肯定是不好的啊,我们就拿一个例子来讲啊,就是啊我比较这个关心的一个是吧?呃,大家这个都知道特斯拉吧,知道是吧?啊,比较著名的一个公司了啊,他们这个驾自动驾驶做的特别好,对吧?但是这个东西是不是也出过事故啊,而且很严重的一次事故,就在中国出的,对不对。没没关注过是吧,啊,这个自动驾驶的话,虽然说呃,它能做出来,但是不成熟啊,对吧?啊,你就把这个自动驾驶你放到这个。呃,放到这个这个这个,呃,北京有个这个什么什么桥来着,西直门桥啊,西直门是吧?啊,你就放到这个西直门上,你让他试试去啊,会把它给绕晕了,对吧?啊说这个东西的话就是呃,全自动当然好,它能帮你解放一些东西,但是呢,它不一定就是什么安全的,不一定是什么,诶就这个这个我们想要的对吧?所这个地方也是啊,你虽然说你是一个全自动的,但是呢,你再去做一些操作的时候不是很灵活。
08:31
理解吧,嗯,好,那么这就是什么,他们这个框架的一个特点,那么最后呢,我们再来想一下这个my be,那买be我希望它是什么样子的呢?就是诶你既灵活是吧,哎又安全,然后呢,又能去做一些什么定制。啊,那么其实它这些特点呢都有,比如说对于我们这个JDBC啊,帮我们去做了这些事情来讲啊,我们在JDBC里面比较麻烦的一些东西,就什么呀,你要去写一些什么重复性的代码,像这个什么编译so语句啊,给参数赋值,然后呢,呃,执行so语句之后呢,封装结果的,像这些代码呢,它都能帮我们去做一个封装。
09:11
啊,最大的一个好处,另外一个好处呢,就是哈佛里面存在的问题,就像那个搜语句呢,它会帮我们自动生成,而在买电视里面呢,我们是需要自己去写的。能听懂吧,那么你要自己写搜后语句的话,可能又有同学想,那你搜后语句要是写到Java代码里面是不是还是有问题啊,注意他也帮我们解决了这个问题,在买贝电里面,我们所有的so后语句全部都写到了一个配置文件中,不会出现到Java代码中的,能明白吧?所以说呢,从各个方面来考虑的话,买be其实是更加的优秀一点的。从设计上也好,或者从这个使用上来面也好,或者从后期的扩展性上面来讲,它都是比较优秀一点的,所以说现在这个框架用的是比较多的,明白了吧,OK,好,那我们就简单的给大家去对比一下啊,来看一下啊,这个核心circle呢,还是需要自己去写的啊,自己来优化,然后呢,So和Java代码呢,分开了,功能边界清晰,一个专注于业务,一个专注于数据,就是我们不会把搜呢跟Java代码写到一起,而是Java就是Java,而搜呢,我们会把它写到一个配置文件中啊,就是我们买里面比较重要的一个S映射文件,能听懂了吧?OK,所以说我们简单的做一个对比,让大家知道一下,我们既然都学了那么多的持久层技术了,为什么还要再去学一个买,那么原因就是之前学的那些东西,要么呢,诶就是我们。
10:33
算不上一个框架是吧,要么呢,哎,就是你的功能呢,可能还不会让我很满意啊,所以说呢,我必须要怎么再去学一个啊,特别就是更加好一点的一个框架啊,那就是我们的买卖这行吧,啊就给大家介绍这么多啊。
我来说两句