00:00
好,然后呢,诶下边一个就提到我们讲的叫数据库事物,哎,这咱们今天一上来讲的一个重点啊,哎首先呢,说什么叫事,哎什么叫15能说吧。叫一组逻辑操作单元是吧?哎,使数据呢,从一种状态哎变换为另外一种状态,哎,所谓的一组逻辑操作单元呢?哎,通常呢,咱们说你要么是一个,呃DDL操作,要么呢,就是一个或多个的诶DML操作,说白了就是只要你每次提交了。一提交这个事呢,相当于就不能再回滚了,我就认为呢,呃,一开始你比如说要做操作了,然后后边呢给提交了,我就认为你这块呢,其实就是个事务。啊,因为事物的最终的结束都是以提交或者是回滚来表示你的结束的啊,原来呢,咱们没有说这个提供一个连接,这里边去写一个update,写一个update,原来呢,就是这一个update呢,里边呢造了个连接,操作完成后呢,自己就关了,说白了就是你就是一个单独的事物了。
01:05
哎,向咱们转账这个事儿,说A呢,给BB转账。啊就写在前面了啊,哎,你转账的话呢,这个连接呢,是我们在里边自己造的,说白了就是你这呢就是一个事物啊,你那又是个事物,既然是俩事物,这里边你想回滚啊,想怎么样呢,这不行,哎所以要想呢,这里边要么都执行,要么都不执行啊你得咱俩呢得放到一个事物当中才行,所以咱们才把这个连接呢,是从外边给它传进去的啊是这样啊,哎,那么事物处理的原则。哎,这就是咱们上面写的。就是这个呢,大家呃,需要用自己的话呢描述出来,这也是,呃在笔试当中呢,有时候经常会考的说我们处理事物的时候呢,处理的原则是什么?哎,就是这个问题。哎,就这问题就是说诶你要么呢,这个呃,事务当中的这好几个事儿是吧,多个操作呢,都执行了。
02:04
哎,那这时候呢,你就做一个commit。哎,就是这个说要么的话呢,你这些操作的话呢,呃,执行了一半没执行完,那就是要放弃所做的,呃,所有修改,哎这个有就没了啊。这个一当中这个有这个就缺失了啊,哎,放弃所做的所有修改,整个事物呢,回滚到最初状态。哎,就是只能是二选一,哎就咱们上课的时候讲的说这是合的这样,这是合的这样啊,你在中间呢,游泳这呢,只能是临时状态,你要么呢,就是回到你最初的这个状态啊,要么呢,你就是跑到这个状态,哎只能是二选一这种啊。行,呃,这是我们说的这个事儿,然后呢,诶还关于我们这个数据的提交,什么时候就提交了,诶哪些操作会导致又提交,哎,这个我们CTRLC也拿过来,也算是一个比较重要的一块内容啊,这个我们就放在这块,诶说明诶这样啊,这我写个一。
03:03
哎,这写个二了啊,好保存一下行这两点啊,需要大家呢去理解,那我们要想保证呢,你这个事物,哎能够达到这个事儿,那我们就得避免让他去自动提交了,诶那我们在这个代码上的一个具体的体现,嗯,代码上的一个具体的体现,呃,这是通用的增删改,还有查询的,这我们就把这个拿过来。嗯,诶具体的在转账的时候啊,咱们这边啊在这,嗯。在这儿呢是吧。CTRLC下。再放这啊。诶CTRLS行,诶这里边呢,我们这要做一个转账操作,这呢是一个电猫,这是一个电猫,它俩呢,哎,我们说必须得同时执行,要么呢同时不执行,诶所以这里边我们有一个这样的操作,哎,然后呢,哎,如果出现网络异常了,诶这时候呢,我们就做一个数据的回滚。
04:10
啊,这是这个,哎说你要是没出现异常,没出现异常呢,你就提交数据,哎做这个事就行。啊,这就可以啊,诶保存一下行啊,这个我们就过了啊呃,然后呢,我们提了一下呢,就是最后呢,关于这个,嗯,关闭资源的时候。哎,关闭资源的时候呢,我们说在这个之前,这个我们是写到哪呢。嗯,这个是我看啊。嗯,在这呢是吧,这个我是写到这个update这里边了啊,就是在这个呃,连接啊,在关闭之前的话呢,我们说你可以给他set一个auto commit是一个true。啊,是一个处啊,这个事呢,我把它CTRLC咱们粘到这吧,在这啊这个操作呢,其实主要针对的是咱们说的这个数据库连接池来说的,哎,在连接池当中呢,你可能会呃,为了保证它是一个事物里边的,所以你就set auto commit改成false了,但是你最后呢,把这个链接呢,又还回去的时候呢,你就得给人家改成true,要别人用的时候呢,就成了一个false了,看这个问题稍微注意一下啊,好,那么考虑上失误以后通用的增删改和查询操作。
05:28
诶,这是1.0的,然后2.0的,这是增删改,其实比1.0的更简单了。因为连接呢,你是直接在外边传进去的啊。诶,然后呢,呃,一个通用的查询。嗯,这个CTRLC。那就过来了,还保存一下。那就这样好,这呢,我们是说的这个事物的具体一个展示,那那大家呢,你需要记住的就是说我们最终这个结论呢,就是把这个增删改查操作呢,我们给它这个升级了一下,这时候连接呢,我们是从外边传进来的,哎保证呢,就是你要是一个事物有多个DL操作的话呢,我们这几个操作呢,得在同一个连接当中去做,哎就可以了,所以呢,是从外边传进来的,好,然后呢,事务这块呢,呃,也涉及到面试当中,笔试当中常爱考核问的,当然呢,这个事物本身呢,大家也需要去掌握的啊,提到了叫事物的四大属性。
06:38
哪四大?啊,隔离性,对这个好,这个因为讲的时间长是吧,一致性,原子性,持久性,对啊acid这四个属性,哎,需要大家能够记住,而且每一个,呃,这个原子性,什么叫原子性啊,原子嘛,作为一个整体出现是吧,要么都执行,要么都不执行,你不能再分了,哎,就是原子最小单位了嘛,是吧?啊一致性呢。
07:13
哎,就是我们这个操作呢,就得从一个一致性状态到另外一个一致性状态,只能是,哎要么是最终状态,要么是最这个最终状态,哎不会有一半的这种情况要一致的啊,就像咱们转账呢,一开始的时候,他俩呢是一人1000啊,最后呢,另外一个一致性状态就是他俩,呃一个900,一个1000,一但加起来还是2000,哎这样一种状态呢,是不能改变的啊,哎隔离性,隔离性里边稍微复杂一点是吧?呃还有一个叫持久性。这个情就是一旦呢,你要执行以后,这个呢,就需要提交了,就需要给固定下来了,诶任何别的操作都不能改变这种状态,你说回滚一下不行啊,就AA转账给BB已经转成了,这个事儿就已经固定下来了啊,你只能说让BB再给你转回来,那就是另外一个事了啊,另外一个事物了啊好在这呢,就咱们说的这呃,四个acid属性找一下。
08:10
哎,这四个。那四大属性,嗯,A cid啊,就是一说到acid呢,你知道就是说的这四个事就行啊,现在生活当中有时候提的比较多的呢,就是这个,呃,BAT这个词了是吧,但现在呢,B已经不咋行了是吧?呃,ATT,嗯,阿里跟腾讯啊,现在是算国内的这个巨无霸了啊嗯,百度,百度现在已经排到第六了是吧?哎,互联网也排到第六了啊嗯,BBA知道说的啥不?宝啊,对宝马奔驰跟奥迪是吧?嗯,TMD知道说是谁吗?不是哈,还有别的意思,对这就是说除了这个BAT之外呢,现在国内有几个巨无霸是吧?哎,独角兽这样的企业啊哎,头条美团滴滴,对啊对快手的话呢,就是它还对,还差一点啊,就是它还不构成一个生态是吧?嗯,现在呢,其实美团还是比较强大是吧,美团头条啊,都比较强大的啊对滴滴呢,里边就更多的像是一个垂直性的,就是滴滴里边给人的感觉,总感觉是他就在出行这个相关的领域里边是一个老大是吧?嗯,然后呢,里边这人呢,就是比较算精英式的这种人物啊,像这个美团呢,就是比较散的面比较广一些。
09:48
啊,衣食住行相关的这个娱乐啊,就全涉及到啊这样问题,然后呢,美团跟这个头条前段时间呢,前段时间这不也都互相打嘛,美团呢,就开始出那个美团打车是吧?哎,头条一看这不滴滴一看不行,那我也出一个外卖是吧?嗯,对是出了啊当然呢,事实证明呢,滴滴亏了是吧?呃,美团的这块还是在在这个上海这块团外卖,呃,美团的这个这个大车好像还行,北京这块还没有啊对,当然现在这个比较被看好的,我觉得头条还是很强,头条已经形成一个生态链了啊嗯,好,诶这个呢是我们说的这样,诶四大属性啊,那接着说,呃,数据操作过程当中,哎,数据操作过程当中可能出现的问题,这块呢,其实主要。
10:48
它是针对我们说的隔离性来讲的,哎针对这个隔离性来说,哎有几个问题啊,三个问题,对脏读,不可重复读,换读,哎这三个问题,哎这个是关于事物里边这些大家都得清楚的,行,这三个问题,这三个问题呢,具体是什么意思,这个你得清楚啊,然后针对这三个问题的一个解决程度,哎提出了叫四种离级别,哎这四种隔离级别,哎就是什么也没解决的,哎叫read UN committed,解决了脏毒了,是第二种解决了脏毒和不可重复的了,第三种,哎三个都解决了贩毒,那这叫四种隔离级别,这里边我们提到一个词叫做一致性和并发性。
11:45
就是这呢是矛盾的啊,就是一致性越好,并发性越差,嗯。哎,那我们越往下走,就是越是这样的一种现实,越往下走一致性越好,但是并发性就越差,哎,就是这个问题啊行,那下边呢,就说如何?呃,查看并设置隔离级别啊,这个我们在这个之前呢,先提了一下,就是关于Oracle和my circlele咱们常用的两种数据库,诶他们这个关于隔离级别的一个支持啊这呢提到这个问题,那这个我们就放到这儿了啊,然后呢,诶如何去查看并设置呢?诶咱们下边有对应的这个操作,把这个呢拿过来。
12:31
诶这个大家呢,其实也不用刻意的去死记硬背哈,诶我上课呢,是这个都能直接操作了,你写多了以后自然就熟了,哎这块呢,你就诶能够找到啊这块相应的操作,其实呢,你比如不清楚了,直接百度一搜索,设置数据库的隔离级别啊,一搜就搜着啊,就是大家其实工作以后啊,哎,你要善于去用百度哈。哎,这绝对是一种能力,昨天呢,有一个同学去外派到阿里了啊给我发信息呢啊说说刚去特别紧张,说怕这个坚持不住是吧,说这个公司说了说不让,呃不让用公司的电脑登微信登QQ,然后呢,这个呃不让什么呀,就是不让拿手机拍照啊,不让他拿硬盘去或者U盘插到公司的电脑上,就是他要出于保命的一些原因吧,对吧,对,然后呢,就说如我要遇到问题该怎么办呢?是吧,对,嗯,我跟他说的,说你遇到问题那里边你先脑子里边先记一下,你回头最起码能描述出来啊,你再跟老师去对到底怎么着解决是吧,再一个的话呢,用百度呗,百度对就是大家啊百度上。
13:44
啊,那你得能上网呀,嗯,能登百度啊,就是相当于呢,就肯定得有网吗?就相当于呢,大家在这个公司当中,就是你别觉得用百度很low啊,比如说你现在遇到问题你解决不了,然后也没人可问,然后旁边那个人呢,诶啊正好呢,诶他现当给解决出来,了解出来以后,你问他咋解决的,他说我百度的,你说百度的谁不会,哎你别觉得这个好像无所谓是吧?哎,会百度绝对是一种能力哈,就大家呢,你从现在开始学习期间你就开始,嗯,比如说百度,你为啥呢,说你你百度不出来,人家百度就能百度出来呢,其实你经常百度的话,那个词条怎么去设置,其实也是挺挺是个技术活的,对你遇到的问题你怎么设置,人家能搜出来12345,他这个,呃,适配他这个问题的可能第一个就是人家一找就找了,你那块呢,关键词用的不对,可能在第三页才能找到,但是你可能有时候都找不到第三页就不耐烦了,哎,所以呢,大家平时也要诶善于会用百度,然后呢,百度查出来那个问题的解决,如果说具有通。
14:44
通性你记着给他把那个问题呢,也保存保存收集一下啊,比如用这个你在这个流量器当中不是可以集成有道的那个插件,哎,你把那个文件直接保存到那个插件里面,都可以慢慢攒一攒这些问题啊这样。
15:01
好,这就过了啊,这个呢,就是设置这个隔离级别的啊,下一个呃,下一个呢,就提到了我们这个要做的今天的第二个事啊,叫do了啊do啊提供了一个叫贝斯do。诶就是DA呢,就封装了我们对数据库的增删改查操作,诶这个我们整个呢,把这个就拿过来,这也是大家呢,诶就落地呢,需要你去练的,一会呢,我们再总结一下,你主要需要练的是哪些代码啊。诶,CTRLS一下,然后呢,诶下一个do呢,是我们写的这个类了,哎具体的话呢,我们就提供了接口,咱们以这个customer哎这个表为例,针对于它呢,我们相关的操作,哎就写在这样的一个,诶诶先看这个接口啊。CTRLC。哎,这个呢,嗯,这要写反了是吧,先看我们这个customer Du啊,诶保存一下,然后再下边呢,就是我们这个接口的具体的实现了,就是你针对这个表,你到底想做什么,怎么做啊,就这个I。
16:08
这个咱们粘的话呢,我觉得我应该粘带发型这个。稍微高大上一点是吧,啊这这了啊,诶CTRLC。稍微一下。诶,然后customer do接口,诶接口这块没变化啊,这个时间这块,诶粘这个。诶,这个站位为啥跟那个不一样呢。Controy。哎,这样啊。嗯,保存一下行,那么这个呢,是咱们用上这个叫泛行了啊,其实大家外乎难的话就是这个事,这个事我再稍微的解释一句啊,就是其实这个操作呢,你写到这个构造器里边是一样的,无外乎就是这个咱们讲代码块先执行,代码块执行完以后呢,构造器执行就是一个先后问题啊,都会执行,而且呢,都执行执行这一次了,那么这里边其实正常来讲,我们这个操作呢,就应该写在这个customer do里边。
17:27
CTRLC一下,我先给你放到这里边去给你演示啊,那这呢,我们要做的是就是当你去创建custom input的这个对象的时候,我们获取当前你这个对象所在类,那就是这个类你的带泛型的副类,这不就我们就拿到它了吗?这叫带泛型的负类啊,就把它拿走了,返回的这个叫tap,这个tap呢是个接口啊,就大的class呢,实现了这个接口了,那下边呢,我们紧接着做了一个强转,就是像普通的一个class,你没有带泛型的,这也叫tap,那我们现在明显带了泛型啊,那么其实呢,是你这个里边的一种特殊的tap,就是带泛型参数的这个tap,所以我们这块呢,就可以做个强转。
18:06
啊,有几个同学问说为什么要强转,当然目的就是为了调这个方法呀,你要说你这个接口里边就有这个方法,那我就懒得给你强转了,关键就是你这个tab里边没有这个方法,所以呢,我们才做强转了,哎,正因为呢,你也确实就是这个带泛行参数的,所以呢,也不会报class class exception了啊,拿到这个,诶,带泛行参数的这个type,其实说白了就这块还是它,然后呢,我们去调一个叫get啊,Actual type arguments这个得到你实际上的这个呃,参数,那参数呢,不就是它吗?嗯,但是呢,我们知道有的这个像map里边呢,K value6有俩反应参数,所以我们这呢,得到就一个数组,对于咱们这个问题来讲,我就写了一个,所以呢,你这个数组的长度呢,其实就是一,哎,那我这呢,就自然而然的直接就获取你D的个位置的元素了,得到了这个呢,其实是一个tap了,那tap呢,咱知道这其实也就是个class,所以我这块做了一个强转,诶相当于这个class呢,对应的不就是这个classroom吗?
19:03
哎,就是它相当于我们这个class就能拿到这customer了,但是呢,你每一个这个base do的时间类里边都得写这个操作,没必要啊,那干脆呢,我们把这个呢一删,我就写到这个负类里了。说写到负类里边会不会有问题呢?没有任何问题,我们在造一个此类对象的时候呢,你写到负类里边这个Z此仍然是你此类的这个对象,因为我们用一个此类对象,也只是会造一个此类对象,你不会说造此类对象的时候呢,又给你造了个负类的对象,哎,咱们讲Java基础的时候,此类对象实例化的全过程说过啊,诶,所以呢,直接写到负类里边就OK了,行,这个呢是需要我们做的这个事儿,哎,后边呢,我们还有一个单元测试,这个大家下来呢,你你测一测就行,关键呢就是还是上边这三个类的一个实现啊,那后续呢,我们可以提供各种各样的针对于不同的表的,哎,这个接口啊,以及它的这个实间类啊,用的呢是同一个base do啊,只不过呢,这个base do呢,咱们在讲了que re以后呢,你可以把这个呢,诶都用咱们这个que re去做一下,就用不着咱们这样写了,诶这个事的话呢,诶我写在这个课件里了。
20:10
哎,就是这个baseto啊,就是把我们自己写的这个增产改查呢,改成用rener啊,仅此而已。好过来,诶过来以后我们这块呢,及时性的做了一个小结,这个小结呢,呃,应该说是比较重要的,也就是说咱们整个讲JDBC哎,都可以通过这主体的内容,通过这呢穿一下。哎,什么意思啊,回顾一下哎,咱们在写这个代码的时候呢,想第一个事是不是要获取数据库连接啊。哎获取连接,哎获取连接以后,哎,这比如说我们就有一个哎connection了啊,哎等于假设呢,咱们就是JDBCU点啊盖的一个connection了,哎这样写的啊那第二步。
21:03
诶,获取连接以后呢,假设我们下边可能有好几个DL操作了,那整个呢,是不是作为一个事物出现,哎,作为一个事物出现,中间呢,包含了多个DML操作。哎,或者叫这样说啊,如下的哎,多个DML操作,哎,作为一个事物来出现。哎,这样,那下边你可能有多个这个电操作啊,这是操作一。哎操作一哎这做一个,然后操作二哎做一个,哎操作三哎做一个等等,哎这都属于这个D码操作,那么你做的这三个操作呢,哎就需要用到咱们讲的那个通用的增删改查操作了,哎我们说哎需要使用通用的哎增删改查操作,哎这个呢也一样。
22:01
你看这都是这样的啊呃,那么这是这个事,哎,然后呢,当然这个我们前面再补一个啊,既然你是作为一个事物出现的,我们通常也会它点是set,诶set叫auto。哎。哎,这个是不是都false对吧?好,然后这块呢,你就做这个操作,操作完以后第三步,哎这个哎也先别说第三步了,就是你要正常都执行完以后,我们这块呢,提交一下是吧。哎,肯明得提交一下,哎,你要是出现这个异常了,哎这个咱们其实从这块呢,一直就加了个try catch了啊,这个我就不去加这样一个结构了,在这就说一下说诶如果诶出现哎异常则哎我们通过它点叫柔。哎,Back这样一个方法。来执行啊,最后呢,第四步啊,关闭资源,哎,咱们通过JDBC啊U第二诶做了一个close resource,哎,这里边呢,涉及到相关资源的关闭啊,我这就简写了啊哎整个呢,其实我们这章讲这个套路呢,都可以融到这里边,那么针对于第一开始获取连接这个事,我们其实有两种方式,方式一哎就是自己手动获取连接。
23:23
哎,那么在一些笔试问题当中啊,说过了可能会问啊,说我们要手动获取个连接,需要哪几步,注意哪些问题啊,这个咱们都写过这个连接方式了,哎,这个看这就行,这是方式一,然后方式二,哎在真正开发当中,我们使用的都是哎数据库连接池。哎,数据连接池,这咱们下边要说的这个问题啊,哎,这呢就是我们讲的这两种方式。哎,这不就把我们头跟尾的这两个事呢给连起来了,哎,接在一起了,然后下边这块呢,诶,Set out肯定等于false啊触啊,哎包括下边这个roll back呢,这块呢,我们说主要呢来体现事物。
24:06
哎,体现了一个事物的操作,这也是我们要讲的一个重点,然后再往下,诶,操作一,操作二,操作三,这里边呢,需要用到通用的增删改查操作,这呢又提到了通用的增删改查操作,怎么去做?哎,通用的哎增删改查操作哎如何实现。两种方式。哎,方式一,哎,这个我们是不是自己手动实现啊,手动使用prepared。实现。哎,这是我们这个手动的实现的一种方式,然后第二种方式。诶方式二,哎,咱们可以使用,对阿巴西亚呢,我们提供了诶一个叫诶DBDB啊us这样的一个JA文件是吧?哎这个当中呢,有个类叫query,哎,Runner,哎这样一个类啊去实现就行,哎这呢也是这两种方式,看这个写成小解析吧,二啊行,那这呢就相当于我们能知道,诶自己手动写的话呢,诶该怎么去做,然后呢,使用现成的这个类呢,诶该怎么去做,那咱们也看了源码啊,其实它这里边呢,用的跟咱们这个呢是一个套路,一个思路啊无外乎就是它这里边呢,考虑的情况呢,稍微多一点,比如说你传的那个,呃可变型参跟我们这里边障碍符不匹配了,它会有一些相应的异常的抛出,哎咱们写的时候呢,就是大家注意点啊,你有几个障碍符,后边呢,就写写写几个这个呃,可变性参哎,咱们没有那个抛异常的事儿,所以他呢写的见容性更稍微好一点啊。
25:55
也就仅此而已啊,那这两种方式,这不也是咱们重点要提的这个问题哈,哎,那么对于大家来讲,其实呢,你如果这个方式一没掌握住,诶,你会用方式二就行,这个呢,如果方式一没掌握住,你会用方式二就可以,这都是开发中我们可以选择的都是方式二对吧?哎,然后最后呢,提交啊roll back这个在关闭资源啊,关闭资源呢,虽然比较小吧,但是我们也也有两种方式是吧,这呢也有两种方式,第一种方式呢,就是我们自己来关。
26:31
哎,手动关闭资源。哎,放这。哎,方式二呢,这块我们提到说这个DBS点大文件里边呢,还提供了个类啊,只不过这个类呢,它叫这个DB这个类了,哎,它呢,哎的关闭方法,哎这也算是人家给提供现成的了啊,那这个一样你要自己不会关。
27:00
这个自己不会关,估计也挺难的是吧,就close一下呗,是吧,啊你要说这个吧,不会倒有可能,因为你也不知道掉这个类哈,但这个呢,可能更简单一些啊嗯,没什么技术含量啊嗯,也就是说呢,我们整个呢,讲的GDBC的内容呢,您主要呢,把这个黄的加一下,主要呢,就看这里边这个黄色的就行,那你要说方式一不会大家对都会用这个方12,诶其实就可以,诶这块呢,需要大家重点关注的一个事物,咱们到后边讲框架的时候呢,也会,诶重点的来说这个事物的问题,哎,这是其中一个不可避免的一个情况啊。好,那么基于这个呢,我们下边讲的这个就是连接池,诶关于这个quener的情况了啊,诶首先是这个连接池,连接池呢,我们说传统连接啊,遇到的这个问题。哎,传统连接遇到的问题。哎,就是在这块,哎这咱们上课呢也提过这个事儿了啊,哎就不具体详细的来展开说了,那下边呢,说解决传统开发中遇到的问题怎么解决呢?哎,那就是实用诶数据库诶连接池。
28:12
诶就可以了,哎使用数据库连接池啊来解决,那么使用数据库连接池解决的好处是什么?哎,这个在这呢,我们也写了好处呢好几个。哎,不是这了啊,哎在这啊写了这样的四个点。啊,切了四个点,哎,大家呢,你看这四个点也行啊,那我就把这几个呢拿过来。哎,就看这几个呢,没问题,或者呢,你用自己的语言去组织啊,或啊自己组织啊语言,哎,我觉得下边这样说呢,可能更清晰一些啊,比如说第一个点来提高程序的一个响应速度。那速度啊,这个呢,其实就跟咱们当时讲的那个线程池好处是一样的啊,那提高成绩的响应速度,因为你说是没有了自己去创建一个连接的相关的代码了,是吧,不用自己去造一个了,而是拿了现成有的。
29:14
哎,这样的一个数据库连接啊,相当于我们去减少了。哎,这个创建连接啊,这个相应的这个时间。诶把这个事呢给省了啊,要提高了成绩的一个响应速度,那第二个呢,我们说降低了资源的消耗,诶降低资源的消耗。怎么理解呢?用完了,对,你用完以后呢,是不是还可以放回来供别人去使用是吧,降低资源消耗就是诶这个可以啊重复使用。哎,这个已经,哎提供好的链接,哎这是这个问题,哎第三个问题,哎,这里边我们说还涉及到一个管理的概念啊,说便于连接的管理。
30:15
哎,这个呃,因为我们涉及到一些相关的参数,哎,咱们可以去做设置啊,大家呢,诶说这仨事呢,其实你就想你诶是自己造一辆自行车,还是说你坐地铁去天安门是吧?哎这块呢,肯定是我们直接坐公共交通了,哎你去的时候呢会更快,哎同时呢,你这块呢,不用说到时候把车再销毁了,哎直接呢,别人还可以再去做哎重复利用了,哎便于管理,就是我们可以控制一下公共交通的一个发车频率啊,然后便于呢进行一个管理操作。好,这是我们说的这几个事儿啊。好,下一个说具体的啊,说这个具体的实现方式啊,这呢我们就提到具体的几种数据库连接池技术。哎,这呢列的稍微多一些,哎,我们其实主要谈的话呢,是提的三种,这两种呢,其实各有利弊,DBCD快但不稳定,哎,C3:0稳定但不太快,哎,然后呢,德鲁伊啊,兼具二者的特点。
31:15
那又快又稳定啊这样啊哎这两个的话呢,用的咱们稍微少一些哈,它呢相对于DBCP来讲呢,算是更快的,稳定性呢也要差一些,这个呢稳定性呢比我们这CP呢要差一些,哎等等,所以这块我们主要提的是这三个啊这三个呢,主要原因是因为像他CA呢,官方呢它呃这个他CA里边自带的DBCP了,CP0呢,就是内T呢,官方推荐的,诶所以这块我们提了一下这两个,哎现在呢,对于我们来讲,主要开发用的就是德鲁伊啊诶C3P0,哎首先我们需要做的呢,就是导入炸包,诶咱们直接在这儿这个今天那个代码里边这个炸包导的可是够多的了。咱不粘这个,粘这个。哎,C3B0呢,我们就找了这一个啊。
32:02
哎,到了这一个,然后测试连接的代码,这个咱们就直接粘咱们这个GDBCU里了。那这个哎,C天辟灵。哎,就他了。嗯,行,那这个一定要小心,这个池子就造一个就行,所以我们一定要来把这个对象呢,给它拿到外边啊,然后下边呢,这个对应的配置文件,这咱们演示的是叉帽哎格式的这个文件了,哎在这。哎,从这到这儿。哎,这就行,哎这里边呢,常见的这些,呃,配置的这些属性,哎大家呢,能知道是什么意思啊就可以了啊那么这些呢,没有严格要求说我们一定要配升级,说一定不能配升级,这得在你公司里边,根据服务器的这个台数,包括呢,你真正那个并发的这个情况,我们才去动态的指定的啊,根据实际问题呢去指定啊。好,这是关于c.P0的,然后DBCP呢,也得导炸包,它这个有几个呀。
33:06
俩吧,那一个呢是就叫DBCP,那一个呢,是这个,那这俩啊。哎,这个打包诶需要测试的代码也是看我们一下这个,诶GDBCU。哎,这个。到这啊,CTRLC。设置代码。来保存一下啊。哎,保存,然后呢,诶这块我们配置文件呢,用的叫点process,嗯,点process这个。那CTRLC,诶这个粘过来就行啊,哎,后边这个叫德鲁伊啊,德鲁伊这块呢,也是倒一个就行。你看套路呢,都一样啊。这个。
34:01
哎,测试的代码,哎,德鲁伊也是看我们这个DB。到这儿呗。到这儿啊。这个行啊。嗯,这个还是稍微有点长了,行就这样了啊,哎,你知道这意思,然后你可以给他再往前提一提啊,哎,德鲁伊的这个P文件。嗯,好,CTRLC这呢,我们也发现呢,就不同的这个,呃,连接池技术,它用的这个属性名啊,会稍有区别,这你还得看他这个官方的文档里边提供的这个到底应该叫什么合适啊,行,这是这个了啊,那么大家呢,这种在重点呢,需要掌握的就是我们这个德鲁伊啊,用这种方式就行啊,其实这种方式你要会用一个,其实几个呢,其他的也会用啊73P0呢,虽然我们用的是这个叉包文件的格式,但是呢,诶官方那个文档也说了,说你用这个点pro也行,其实啊,他要用pro的话呢,其实跟我们这个DBCT德鲁伊其实就类似了啊,下边一个呢,提到我们说DB啊,就阿帕奇提供的这样的一个JA包啊,这个JA包呢,我们需要导入。
35:25
哪个呢?这个。诶导入行导入以后我们主要要用这个类呢,其实就是quener。哎,快增删改啊,进行一个测试,咱们呢,就光写了一个添加,哎,就是测试的这个来测试一个这个操作。哎,就这样啊,然后呢,诶,关于这个,嗯,测试查询,查询这块呢,咱们写的就比较丰富一些了,哎,现在是这个b handler,然后be list handler map handler map list handler啊,Scale handler就获取这种特殊值的,呃,最后呢,我们还自己写了一个,哎这个result set handler的一个实现,哎通过这个呢,大家诶更好的去理解一下,哎,我们这个set handle呢,是什么意思啊,其实我们自己写这个呢,就类似于我们的bin handle啊,就是鬓含在哪。
36:23
嗯,这个大家呢,其实开发当中你就用不着自己写了,你就会用它线程提供的这些就可以。嗯,这个我们一直到,嗯。打这儿啊。嗯,这呢是我们关于这个快的一个使用,那另外呢,其实我们还提到一个,除了它之外呢,我们用到那个叫DB了是吧。嗯,这个我们在最后这块再补充一个啊说呃,使用啊这个。哎DB哎U4第二,诶炸包哎中的DB啊U4工具类。
37:06
哎,实现,哎这个连接等资源的关闭。哎,这个操作这个咱们也写到这个DB的这个工具类里了。哎,就是这块关的时候。诶这个操作啊,CTRLC一下,这个呢,其实可用不可用,可用不用啊,本身呢也比较简单,这个我们也没有必要呢,非得用它的,哎,我们自己呢去关,其实呢,哎,省得你倒包效率呢,反而还要高一点啊,哎这样。行,这呢就是咱们整个这个JDBC的内容,诶大家呢,就相当于拿这个去穿就行,哎这个穿的话呢,具体的这个例子呢,就是拿我们这个do这块去考虑,所以大家呢,其实主要看的就是我们这个零八里边的这几个事。
我来说两句