00:00
嗯,行,那么CDP0DBCP这个咱们都说完了,那么大家下来的话呢,这两种方式呢,如果时间紧张了,你可以就先不练了,因为咱们真正开发中用的话呢,哎,都是用这个德鲁伊了是吧?对,但是刚才讲完以后呢,其实就为什么讲这几种呢,你就知道他这个方式其实都是一样的,希望你能够明确下来,包括以后我们使用的话呢,哎,你去做一个操作,用到第三方这几个步骤,第一步加载驱动啊,第二步我们看下这个驱动加载完以后我应该用哪些API,哎,你看一下这个官方的文档啊,啊给你提供的那就可以了,哎看一下啊,就是整个呢,你别觉得这个麻烦啊,这里边这个操作呢,这不都是我们Java代码的一些相关逻辑,也需要你去强化的啊,不在于说呢,你说我啊不用它了,我就看它有啥用,这里边这东西呢,是对你写其他一些操作其实有帮助的啊,来把这个关掉,我们在这呢去写一个叫德鲁伊。哎,他的一个测试啊,那既然用德鲁伊了,想一下先干啥,先看一下先加驱动呗,是吧,这不就刚才我们讲刚才那俩的意义啊,就是你需要强化我们这个过程,这以后呢,我们学外B阶段也是这样的啊,哎,加载驱动对吧?哎德一这个还CTRLC。
01:24
放在这呗,CTRLV一下,CL一点右键添加过来,这不就进来了,那进来以后,接下来我们这块呢,要使用了,哎,这个public,诶我们先写一个word,哎获取连接是吧?诶获取连接呢,具体该怎么去写呢?哎这块呢就得看它的API了呗,哎这边有个dock。这边有一个index吗?又在这看是吧,这个有啥好的,这有啥区别,这俩是一样的啊,你要用这个好点,这个倒是啊,这个倒是啊,其实看这个文档,想起来当年刚有安卓的时候,谷歌呢,也提供了官方文档,其实就跟这种一样,看到这种其实很舒服,这其实就是一本书一样啊,你想象一下,如果你的母语是英语的话呢,你直接看那个其实就特别爽是吧,都能看得懂,直接照它里边说明呢,就能够用啊,上手很快啊,所以像刚有安卓的时候呢,那些国内的那些人怎么学呢?他就把官方的谷歌的那个文档呢翻译一下,翻译一下以后呢,发现,诶国内呢,有没有其他的文档翻译现成的,干脆呢出一本书得了。
02:44
一出一本书发现,诶国内也没有别人出过这个书,诶国内安卓第一人是吧?啊对,就是这样的啊就这种,那回头的话呢,大家你也可以关注一下,看这个Java有什么新技术啊,你把你英语练一练,一出新技术呢,把这个技术呢赶紧翻译一下是吧?对,当然你不会像安卓一样,那个是一个革命性的一个场景了啊,移动互联网的一个开启啊,一个很大的一个流量啊,就是以后呢不至意这样,但是呢,在这个小的这个方面呢,Java的这个框架呢,还会不断的去更新迭代的啊,你可以先别人一步是吧?好,这录仪打开以后的话呢,这么多API呢,你要找起来也有点崩溃啊咋整哎,你得呢,你得知道,你看我这样做的,这个其实其实实际上是在教大家你解决问题的一个思路啊,你不要光局限在这个具体这个细节,这个知识里边,这个知识呢,永远你也学不完对吧?哎。
03:44
我们怎么去解决这个问题呢?哎,咱们说了,不管你是哪种连接池技术,这块我们都应该是这个data source的一个实现类吧。哎,这样,哎,我先暂时写个no,那既然呢,你一定是它这个实现类,哎先把它呢先导一下啊,那我们就可以这样了,你把光标放这,我CTRLT一下,你不知道是哪个啊,那我们可以通过这来看。
04:11
嗯,这是DBCP的。这边阿里巴巴的。德鲁伊下的一个铺,诶,但是这个抽象类了是吧,那我下找这个不是抽象的,这不就这了,诶德鲁伊的一个data s斯,哎,那这就是我们要找的,哎,他是在这个德鲁伊的点铺啊,这个包下的。哎,德鲁伊点铺,诶在这个下边,它有一个叫诶德鲁伊的一个data塔S斯,它就这个呗,哎,这就是我们要创建的这个对象,其实嗯这样啊,然后这块我们就直接扭一下是吧。诶它诶ctrl shift o一下诶得到它了,然后得到它以后这会点开嗯下找,诶它这呢又呃一些内部类是什么属性呢?有哪些属性呢,就让你去这里边找了,哎这个呢,看起来就不是很方便了啊其实呢,就是我们要找的属性其实都在它这块呢,提供一些设置,当然这块把default去掉,那就是我们要找的那些了,哎为了方便大家看呢,这个我在课件里边给大家提供了一下哈。
05:13
那这就我们见到这些常见的一些配置信息,哎,包括呢,每日配新的一个作用这块我都列出来了,诶回头大家你要下来练呢,诶你就主要练这个就行啊,那这里边呢,我们看一下常见的几个name,哎,JD bc URL username password。这个name的话呢,他不是咱们说的那个。这个name了啊,就是我们要配一个用户名的话呢,配的其实还是他,也就是我们用到这个基本信息呢,其实是这四个是吧。诶,除了这四个之外呢,剩下这些具体的作用啊,这边都列出来了,哎,为了方便我们来调呢啊,你得保证我能看到那个方法啊,所以都还改成它。第二啊,这个我们去set就行啊,Set一下,比如叫ul啊这个username。
06:00
等等,但是这要我要写的话,是不是又相当于是把这个配置文件写到代码中给写死了是吧,还是不愿意这样做,对还是不愿意这样做啊,怎么办呢?哎,在这里边我们刚才用的叫哎这个哎pro这个啊诶刚才用的是它是吧?诶对,再往下找的话,你看它这也有一个叫factory,哎,你看这个factory里边。诶,我们呢,诶是不是还是类似于这样的一个方式,你那跟我们这个DBCD很像啊,诶调这个方法啊,这块我们就传了一个data s,然后这块呢,传个配置文件,那基本上跟D大这个DBCB呢,套路是完全一样的是吧?诶所以这里边这个第一种方式呢,就不给大家演示了啊诶那我们这里边呢,直接就来调一下叫。哎,关于他的一个factory。诶,看清楚啊,库里边的第二,诶这个我们去做一个create。
07:00
诶,Data source,咱用下边这个啊,这里边又需要传一个叫proper,哎这样的啊,然后再去用一个叫ties,诶这样,诶然后呢,我们再去加载一个配置文件,哎,去load一个,这我先把这个流先写上啊,然后我直接就用其中的一种方式了,诶,Class loader.get system class loader,诶,Get resource as stream,诶这个站长又得写个配软件。诶配置文件呢,咱们还写在S2这一项点右键,诶你一个file,哎这个呢叫德录一第2PROPER t4第二,诶把咱们刚才看到这个配置信息呢写到这啊,诶这个还是要小心一点啊JDBC大写的U。That you are。嗯,URL。JD bc circle,嗯,然后test数据库是吧。
08:06
Username password,这个N是小写的。ABC123。然后driver class name。哎,这个嗯,Com点哎MYq.GDBC点哎driver,哎保存行,那除了这之外呢,其他的一些信息啊,照样可以做配置啊initial size等等,诶这个就诶不在这演示了啊,诶下边你去添加就行,好这个写完以后呢,诶咱们在这去读这个文件,诶CTRLC德鲁伊的properties,诶放在这。啊,然后呢,在这去让它生成一个流ctrl e a,诶把这个呢放进去加载,然后呢,Create先把这个异常呢我们抛一下。好在这CTRL1诶得到一个data source,诶,然后拿着这个S,诶,第2GET一个connection。
09:09
诶,然后CTRLL得到一个连接打印。这样。那这就可以了啊,其实跟咱们刚才用的DBCP呢,基本上是一个套路的啊,来测试一下。哎,做一个执行OK。哎,这块貌似报错了是吧。说的呃,非法的initial size10max active是八,相当于这里边涉及到一个默认值的问题啊,诶max active这个默认值缺醒的话呢,是个八,结果你来了一个初始化就来个十,哎,超出了你这个最大的一个活跃数了啊,那你可以呢去修改啊对,比如我们把这个后边给你补一个最大的活跃数,呃,也改成这个十啊嗯,就是初始化的这个就是它的一个活跃数了啊再来。
10:02
UR cannot be no g d b CU URL给他改成这个啊。就可以了,诶课件写错了,把这个调一下啊,诶就这块呢,测试的时候呢,它这块找的是我们的,诶刚才的这个属性啊,嗯,行,那就调一下,那这呢,我们就获取了这个连接了啊没问题,然后呢,诶我们在咱们的GDBCUU里边,你可以把刚才这个呢,也是同样的道理给它拿过来,诶然后测试一下我们这个德鲁伊呢,靠不靠谱啊,这个咱们快速的做一下啊,CTRLC一下粘过来。哎,这个我都统一的写到这块了啊。哎,Public static,哎,然后呢,叫连接。
11:07
诶获取个连接,诶把刚才这个呢粘过来,诶这块同样的道理,我们先在这去声明一个啊private,诶这个咱们叫data source了,刚才这块呢也是个叫data s,嗯,这个呢是一个静态的,里边帮我们做了初始化,这个咱们诶给他再换一个名,诶这个CTRLC。彩电大一啊。行,哎这呢是一个静态的,哎,然后来一个静态代码块,哎这样子,哎从这。到这儿啊,CTRLX。哎,CTRLV啊粘过来。诶,然后在这里边呢,直接拿着我们这个,诶把这个去掉啊,那直接拿我们这个S呢去获取个链接就行,诶return一个链接,这个异常也是统一的,这样包一下先啊点右键看surround位。
12:10
诶,保存一下。呃,WK的啊,这个我们起名呢,上边是叫二了,这个叫三来保存行,这个呢有异常我们也给大家去搜一下,好,这呢是使用的,我们叫哎德鲁伊啊。哎,数据库诶链接好吧,哎是技术,嗯,就落地的话,其实以前我们用的话呢,用这个c.P0要多一些啊,只不过呢,我们近几年的话呢,咱咱们才开始考虑用这个德鲁伊的啊,所以这块呢,我们把刚才这两个呢,给大家也稍微的演示了一下啊,就整个套路呢,其实一样的,然后呢,找到咱们这个测试这块。哎,还找咱们刚才那个查询,诶这个呢是二啊DBCP的,咱们换个三跑一下。
13:00
哎,没问题,哎,所以这块呢,我们也能够获取这个连接,OK,这呢就是用德鲁伊来实现的啊,其实这里边呢,大家你把这个练了就行,这个链呢,其实跟刚才那个DBCP,你发现这整个这个套路是一样,包括以后呢,如果你自己有兴趣,比如我们去写一套,诶这个数据库连接池技术等等类似的这个技术,其实也是主体上的话呢,提供相关的这个炸包,炸包里边其实就是你提供的这些如何去获取连接啊,你这个池子怎么去设置这些信息,诶都提供你这个炸包打一下包,哎都去,诶去实现咱们这里边提供的这些接接口啊,提供人家这里边相关的一些接口就可以了,诶这个呢是咱们写的这个德鲁一啊,诶德鲁伊这块呢,这个叫S1,这个这个得改一下,这个呢也叫S1,这S1,然后呢,在这块呢,咱们诶使用这个get connection3,哎,刚才这块呢,这不是上节课测试的时候呢,这个S1这块没改啊,这还是用的咱们上面那个S了,所以不合适改成S1啊,然后再来测试。
14:00
OK,那没问题啊。
我来说两句