00:00
行,哎,刚才呢,咱们是写了一个叫方式一,那下边呢,我们来写了一个方式二,哎这个我们讲的这几个方式呢,是依次呢,叫递进关系,或者叫迭代的一个关系,并不是说呢,我们获取一个连接呢,有好几种方式,说用哪种都行,不是这个意思,哎,我们是一个递进的关系啊,也就是这个方式二呢,我们是对方式一的一个迭代啊,那么这时候我们就要想说为什么要迭代?哎,Avoid test connection2为什么要迭代,哎,我们说的咱们写的这个Java程序啊,是面向接口编程的,那我们希望呢,就具有更好的可一致性,那尽可能的你这个代码当中啊,就不要出现任何第三方相关的API,那么这里边出现了那。哪一行你就看你哪些呢,是第三方的呗,这个不是吧。这个不是吧,这个不是吧,这个不是吧,这个是吧,这个是不是就第三方的,诶我们new的这结构呢,出现了第三方的API呢,这个是我们不希望看到的,咱希望这个程序呢,具有更好的可一致性,就是我不要降到第三方的,比如我这块呢,想用MYSQL,回头我想换成这个Oracle了,这里边最好能很快的能够切换过去,所以呢,我们就不希望它现,那不能说不希望它出现了啊,就不希望的以这种方式来出现,你肯定连接的还是MYQ啊,那怎么去获取一个MYSQL的driver的实现类对象呢?
01:33
诶,对啊,大家有同学提到了反射,反射的话呢,我们就很好的能够把它给包装起来,实现这种动态的获取,反射呢,咱们讲它的一个最主要特性,一想到反射,你要想看它的动态性能啊,那这块呢,我们想获取的是哪一个数据库的连接呢?一开始是不确定的啊,现在呢,我们啊是用的是EXSQ的,OK,那我们就以一个字符号的方式呢来获取,行,那这时候呢,你看我们还是做这个事啊,首先呢做的这个事儿,那咱们在这写个注释啊,相当于是叫获取driver的,哎,实现类对象这个呢,就是具体数据库厂商来提供的了,那咱们现在呢,还是做这个事儿。
02:12
啊,在这个基础上我们描述一下,这就咱们的第一步,那获取这个Java实验类对象的话呢,我们是用反射来实现。哎,实用反射,哎反射像咱们当时讲这个叫class.for name,这呢是反射的源头,现在有个大的class实例,这个位置是不是就我们具体的这个实现类的一个路径了,哎,我们找的就是它。相找它,然后这块呢,先把这个异常我们暂时都给它抛一下啊嗯,CTRL1诶pll异常就是你这个类呢可能找不到啊,这个呢正常for name就会报这样一个异常,然后在这呢,CTRL1诶我们就得到了一个class的一个实例,这个我们就叫做class了。啊,这个发型呢,暂时我们就先去掉它了啊,然后class第二,诶,这我们去调它,这个叫new instance方法,这个方法呢,要能调,调取成功得保证。
03:08
你有空间构造器,而且呢,还得权限够够吗?咱把这异常放大一点。哎,够不够,你看这块呢,是不是已经暴露出来了,诶这不就有空单构造器,而且我们还能又调,那说明你这个权限也够是吧?诶我们只不过呢,是通过法式来做的,那左边呢,我们就接收为一个driver啊,那你这个返回的这个object,咱们做一个强转就行。保存一下啊,这块我们CTRL1诶给大家做一个cast行,这呢就是咱们通过反射的方式来获取了这个driver的实现类对象,就这两行代码来替换原有的这一行代码,剩下这几个事呢,没有变,对没有变啊,所以第二个事儿,哎还是呢,哎就要提供哎要连接的。哎,要连接的这个,诶数据库就是我们这个磁string形的URL,哎等于哎这个怎么写的呀,CDBCMY,哎这个下的这个冒号啊,然后local host,哎3306下的,哎,Test这样一个数据。
04:16
哎,就它了,好第三步呢,诶,我们就需要去提供呃连接,呃需要的用户名和密码,只不过呢,这块我们是以这个properties方式呈现的,这个我就直接粘过来了,诶就它CTRLC。那这样就可以了,然后第四步,哎,我们就可以去获取链接。哎,就行啊,拿着我们这个driver对象点二,诶我们调了一个方法叫connect方法啊,UR传进去,哎,然后这个properties对象传进去,诶这块我们就可以返回一个具体的连接,哎,这个呢,就是我们要要的这个对象,哎方式二呢,相对于方式一就是我们获取Java对象的时候呢,用到的反射了,呃使得我们这个连接的这个方式呢,就更具有通用性,从API的角度,从我们这个程序的角度来看,我们这里边没有出现任何第三方的这个API,你看都是我们诶S公司提供的这API,哎使得我们这个程序呢,就有比较好的一个一致性,诶我们这个呢,去执行一下。
05:19
啊,没问题啊,这呢,就我们这个方式二的一个情况啊,哎,这个使得啊,或者说我们目的呢,就是在呃,如下的这个程序中啊,不出现啊第三方的API啊使得。哎,这个程序具有更好的可移植性。诶可一致性好,保存一下,这个呢,就我们这个方式二啊,先停一下。
我来说两句