00:00
呃,今天上午呢,我们讲了一个方法,这个方法就是呃,获取链接的方法,那这个方法里边有几点啊,第一点呢,我们用的是最原始的driver。我们用的是最原始的Java,用的是什么Java?比方说哎,我用的是这个Java,我通过反射的方式创建了一个Java的实现类,然后从这里边来获取个链接,其一其二,呃,我们这个方法呢,是跟任何数据库的,呃,任何数据库驱动的API解耦的,就是说我通过一个配置文件的方式,让这个方法变得足够的灵活。那这是我们这个方法的两个特点,但是我这个方法本身呢,还是有一些问题的,就是说我这个方法,我这个方法里边我是直接来用的这个driver,而我们在具体开发的时候呢,我们可以不用这个driver,我用我们提供的另外一个类叫driver manager,我们来看一下这个类,我们来学习drive manager。
01:14
是什么呀?Driver的管理类,说driver manager是驱动的管理类,那它是一个驱动的管理,有什么特点呢?我们看看我可以直接对点,可以给我直接提供了一个方法,而且这个呃,Get connection方法,这个时候呢,这个get connection方法是。重载的其中最后一个直接传入URLU跟password就可以了,就是说这个比直接使用Java更方便。
02:02
好了,我可以直接通过这个方法来获取数据库链接,那么我们把这个拿过来,这还是要的啊,比说C过来。所以是最开始的ULEDPCUUL。好吧,反复什么呢,反。所以说你这么写就成吗?一张先抛出去啊,然后我们反应一下。哎,我直接通过这样的方式获取的话呢,实际上我还差一步,还差一个什么叫加载驱动。加载数据后,驱动程序怎么加载呢?
03:01
请写一个class name ever。好,先看结果,然后我们再来具体解释每一个都是什么意思一下。好,这个是买的,我切换一下。哦,对,看。啊,这是Oracle的都可以,诶我用这样的方式的话呢,我可以直接的来获取这个connection,我们看一下这个步骤哈,这个步骤要是说的话,第一步上面这叫第一步,第一步准备连接数据库的四个字符串分别是什么叫驱动的全内。
04:08
这个驱动指的是什么?就是那个接口实现类的全类名,第二个ABCL。然后优点就没啥说的了啊。啊,我们为了实现。我这个方法不够通用的话,我们采用的是。去读取这个配置文件,那这块的话呢,这个不算是步骤里边的,我们这个四个字框怎么了,我们也可以直接写死,但是我这块的话呢,我直接读的读的配文件,然后看这句话叫加载。驱动程序,这个我们可以作为第二步要加载驱动程序。第三步通过。
05:01
Driver接口时,Driver manager。获取数获取数据。连接OK,具体步骤的话呢,是这样的一个步骤,那么我们,呃,现在我们把这个省一下,把这个直接拿掉,CTRLD,刚才我们看了啊,或者Oracle还是买这都是好用的,我把这个解死。点这是C,如果是306的话,3306,然后这个时候呢,这个是默认的,可以省掉,可以这样写。
06:02
只有这样才能省啊,可以省掉,然后build。密码发错了啊,这会看着会清楚一些,然后叫加载驱动程序,实际上这一步应该叫注册驱动。这个政策驱动这部应该怎么写呢?应该这么写。Many manager re,应该是注册一个驱动程序,看哈,应该这样写,那注册驱动的话我们怎么办呢?我们实际上应该是创建这个driver的一个实现类,实际上应该这么写。比方说我这个写法叫class.class点点new,实际上应该这么写,那我们为什么不这么写也可以呢?是因为我在加载驱动的时候,我这个对应驱里边有一个静态代码块,那个静态代码块会被执行,我们以这个为例,大家看一下。
07:13
Ever。这个吧,比说T,我们找到my circlec driver打开,这个时候的话呢,需要去关联源码,以后我们会经常去关联源代码,点一下点。呃,其他的位置点folder找到。计算机E盘,Java open source。买circle。My circle s RC是不是源码啊,确定打开我们看一下,这是driver,这是my circle给我们提供的driver,就是那个什么呀,Come my s driver,这个时候大家看是不是有一个静态代码块,这个静态代码块就是你看是不是创建了当前类的一个实例,注册到我们这个drive manager里边了,所以说这一步我就不用重新再写一遍了,因为我们的这个什么呢?因为我们的这个,嗯。
08:17
这个。对应的这个驱动程序里边有一定的代码块,他已经把这步已经给我们写好了,所以说我们只需要这样用就可以了,这直接要加载驱动程序,然后对应的。STEM实现类中有。注册。驱动的静态的板块,静态代码块,OK,那说用这个Java manager的好处是什么呢?它的好处就是它可以来我里边注册多个驱动程序,我再再说一遍啊,它可以来注册多个驱动程序,可以注册多个,那你只需要这个JDBC是不一样的话,我就可以实现连接不同的数据库,那我再写一个大家看。
09:31
Driver two等于。就是这么写,有什么好处呢?好处是这样的。TC写过来啊,写过来,这个我写一个manager写完写完然后的话,我们现在这个b cul是它,那我这样写一下吧,对,BCUURL度等于。
10:06
复制一下啊。首C回来。String user等于。Hot。Password等于。啊好,是这样写的,好了这块我写个二,先看结果。好,换一下。大家看这就是orac口的,是Oracle的吧,我刚才我要把这个二去掉的话,它连的就是麦口。
11:06
写错了啊,这不是已经啊,这写错了,1230这么写是吧。OK,这样就可以,诶,那我们这个里边的话呢,我们除了看见用drive manager这个重载方法获取链接比较简单以外呢,还有一个好处,它可以管理多个驱动程序。Manager能想明白是吧?啊好处第一个好处。可以通过的。蒙仔的方法。获取数据库连接,这个时候比较方便,较为方便,那你肯定你那个,那么是还个便好了,第二个就是manager可以管理,可以同时管理多个。
12:27
程序同学说,哎,怎么叫管理多个驱动程序呢,你最后从这块connection,它调的还是对应Java的那个C的方法吗?我们可以看一下这个源代码CR点住它来看,大家看啊,从这块来获取,它是怎么获取的呢?它会来调这个get connection承载的哈,点它好了,点过来,那注意看,就是这个manager是不是一个同电板块啊是吧,往下翻,往下翻它会什么,它会有一个叫什么叫呃resist的drivers,这个类名叫drive info,点它看一下driver INF for是什么。
13:17
我说是什么呀,是不是就是driver的一个封装类啊,你看这里边是不是只有driver这么一个属性,所以说这个的话呢,就是driver的一个封装类,这里边重写了ECO子跟哈扣的方法。然后我们再回来,我们再回到刚才那一步,刚才这一步的话呢,呃,我们有了这个drive in for以后呢,我们实际上是从driver info里边获取driver,然后再调这个connect方法吧。看到了吧,哎,这里边会出现一个音符,我们这块也来打上一个断点,看一看它是怎么连的,跑一下。
14:02
Debug。Unit。好。看这个程序怎么跑的哈,我们首先的话呢,到这块我们想看一下这个register drivers我打开了啊,大家看里边有一个什么呀,有一个是。嗯,Jdb Co JD bc driver,这是三公司自带的一个叫ODBCJDBC连接桥,还有一个什么买circle口的,后面是不是还有一个or口的,看见了吧,这是or口的,这个是my circle口的,还有一个他带,就是说这个时候怎么了,这个drive manager在管。管理三个驱动程序,然后的话呢,我们具体要获取怎么获取呢?往下走下一步你看这个时候我们要通过这一步来获取这个connection,我们看一下目前这个driver是谁,再往下。
15:05
啊,看这个吧。A driver,那怎么样把那个a driver能找着呢,A driver。看不着,目前正在编辑这个driver看不着,那这个时候实际上怎么样能想到是吧,这个时候获取链接的一定是。我已经注册的这个驱动往下走一步,大家看。好了,我们往下找一步,这个时候很明显是可以进行啊,这个获取不了是吧。啊,这是第二个获取,好了,这就是什么呀,Ul来获取了,我们看他是谁呀,看这个this是谁,是不是买circle的,它实际上是用我driver实现类的这个connect方法来获取的,跟我们先前讲的不就一样了吗?这就是我们讲到的drive manager的两个好处,未来好了,那我们实际上进行写get connection方法的话,应该用这个Java manager,那具体好处就是第一个我通过重载的get connection方法获取数据库链接的话更为方便。
16:25
第二个。那它可以管理多个驱动程序,那只需要我传入的JBC的跟passwor不一样的话,它就会去,它就会获取到不同的链接吧,这是它的好处,好了,我们把这个的话呢,我们给大家简写一下,然后传入调用啊调用说落呃这个注册。若注册了多个数据库链接的调用get connection方法时。
17:10
传入的参数不同B返回不同的数据库连接,OK,这个具体写的话呢,这个我就去掉了哈,CTRLDCTRLD,这拿到这个时候看着呢会更加简洁一点。哎,那这一步实际上在我们那个对应的驱动程序里边有这样的一个静态代码块,那你1NAME的话,静态代码块会被执行,所以说中的实现就是这样的。大家可以来用drive manager干什么呀?来改造一下我前面写的这个get connect方法。OK,写一下啊,来一起看一下,我们把这个什么呢,我们把这个方法呢,重新给大家写一遍,也当最前面一个复习了啊,Public get connection好,或者我们分析一下第一步。
18:30
第一步,第一步大的步骤的话呢,还是这几个步骤啊,第一步就准备连接数据库的四个字符串的,还是这样的第二步。加载数据库驱动。这个数据库驱动的话就是,那就可以第三步,像我们这个方法获取链接,刚才呢,我们每一步都已经讲过了,只不过在第一步里边多少有点不同,怎么写啊,角一吧,这个时候应该是啊,因为我这个信息是在配置文件里边啊,我首先创建一项。
19:20
第二步,获取GDP c.proper对应的输。比如第三步加载。二对应的输入比第四步。下载完这个输入流以后的话呢,然后啊这个位具体吧,具体确定passwor长。
20:05
四个452好,具体步骤的话呢,就这么多,我们慢慢来,第一步创建properties。等于new proper,然后获取这个输入理由,Input stream in等于呃,Class load,我们直接用this吧,this.get class.get class load.a resource iream,文件名叫GDBC。KBc.pro下一步,嗯,加载怎么加载啊,Proper点吧,具体获取四个字符,有我们把这些不管啊,都抛出去,Exception好,具体获取string的user等于点。
21:20
有的四个,第二个他说。第三个DC这个这个跟前面这个不一定一样吧,得看谁呀,这不得看这个资源文件里面这个键呢是吧。然后还有一个就是driver。这里边的话呢,也就drive,然后加载驱动plus,打for Java,获取链接between driver manager.at connection ul。
22:18
写完有一长哦,这个大家看啊,这个返回这个链接的话呢,有点问题,他说什么,他说需要change一下我这个。写成一个方法,那这个方法没写对呗,是吧,好O测试一下它这个avoid taste at。Connection do get connection do connection1我们写完了哈,跑一下有异常往外抛。好看好一点。
23:05
没问题,这是包口的,我们把这个切换一下,切换成买的,把这几个打开,把这个注掉。好,再看。是MY扣吧,啊,这样我这个方法就写完了,那我写这个方法实际上跟前面写的一样,只不过有一步就是我上我的配置文件里边去读了这个配置信息,已达到方法灵活的目的,我说一遍啊,那后边的话呢,我们经常会说,诶我这个充分的接偶,我这个很方便,那前提是有配置文件或者是有注解,有配置文件或者是有注解,这个时候的话呢,我们这个程序才会变得足够的灵活,所以说我们看到了是吧?哎,我这个方法要想不够灵活的话,我们看到了,诶我需要用到反射。
我来说两句