00:00
来,接下来咱们继续再往下,各位啊,再往下我们来思考一个问题,各位,以后我们天天写这六步,是不是是不是有点复杂或者有点繁琐,对吧,我觉得应该有个工具类。是不是我觉得应该有一个工具类。是不是,诶,你这个代码天天这么写,这么写很烦的,Driver manager就这么一长串代码,你天天写写它干啥,是不是我们封装一下,我们封装一个工具类,各位啊,来,在这呢,我建一个包package叫YouTube YouTube能看懂吧?啊工具包新建一个类,这个类呢,我们起名叫DB。DB要求就是数据库JDBC工具类啊叫做JDBC工具类,简化什么编程JDBC编程。简化GDP编编程各位,那首先你觉得这个工具类当中应该有什么样的方法呢?
01:07
获取连接这个东西。是不是有必要封装一下这行代码,有必要封装吗?你封装完它还是一行代码啊,你把这个代码封装到这个里边,我们封装到这个工具类里边,我问你,你将来调不调工具啊,你调这个工具类里边方法是不是还是这行代码,还得至少写一行代码吧,所以说您这个呀,要注意啊。有的地方值得我们去封装,有的地方可能不值当的释放资源,有没有必要,当然有必要,对吧?哎,所以说咱们啊,首先第一个我觉得你应该能想象到的是,封装一个方法是可以获取连接对象的,可以你看咱们老师就是上来注册驱动获取连接,注册驱动获取连接,注册驱动获取连接,那咱们就把获取连接的这个方法,咱就封装一个方法呗,是不是来咱们截个工具类,是不是一般构造方法都是私有的,工具类中的构造方法都是什么私有的?
02:15
为什么呀?因为工具类当中的方法都是静态的,不需要new对象,直接采用类名调用吧,是不是来我们找找相关的类,比如说有一个类叫A是什么?工具类,数组工具类数组工具类的构造方法是不是私有的?这不是吗?我这招是模拟的公司啊。来再来,我们再找一个,比如说你们听说没听说过,有一个叫collections,叫集合工具类,集合工具类我们看方法是不是也是构造方法私有化,对吧?这个不是必须的,只是模仿,只是模仿啊,就是说工具类一般情况下构造方法私有化,建议私有化,因为工具类根本不用造对象,因为工具类的方法都是静态的,静态就可以用类名去调,根本不用拗对象啊,为了防止别人拗对象,所以我给他私有了,这样就拗不了了,只能采用类名去调啊,这是一种编程的一种技巧啊。那么接下来我们提供一个public study,返回哪个对象,什么connection啊,叫get connection方法吧,好,大家看这是这个方法,一看就知道是干啥的。
03:37
获取什么呢?获取数据库连接对象是不是专门给获取数据库连接对象封装了一个方法呀,来这块怎么写啊,注册驱动怎么写,点for name是不是,然后写com点买circle.gdbc什么,点什么driver吧,好,这个是不是注册驱动,注册完驱动之后,接下来我们应该怎么做呀。
04:08
是不是connection等于什么,是不connection啊好connection啊,等于driver什么吧,叫get什么connection吧,是不是三个参数嘛,这个位置写上对不对,GDBC买circle写上local host冒号3306对吧,给note用户名写上。Root啊,密码这块333写上好,大家看这个位置有什么问题呀,有没有必要,有没有必要每一次调这个方法都执行这个。比如说我们在一个程序当中,我们连续调了两次这个get connection方法,有没有这个可能,有没有这个可能,我连续调了两次get connection,我获取了两个联系对象,就是我程序还没有结束啊,我在同一个代码当中,我连续调了两次get connection,那你这个代码就会走两次注册驱动,我注册驱动只需要走一次是不就够了,所以想起来什么了吗?太好了啊,这叫什么静态代码框,在类加载时执行,并且只执行一次,你把这个注册驱动代码只要放到这个地方就可以了,然后呢,在这里呢,把这个异常呢给它解决一下好了,注册驱动就有了,那你只要调这个方法,你是不是就用类去调,你只要用这个类去调,我问你这个是不是得加载,你只要你这个类得加载你这个代码,是不是就一定会执行。
05:51
听懂了吧,所以这个我们放到静态代码框当中,只执行一次注册驱动,那再往下呢,获取连接,大家想是不是就直接这行代码就够了,好获取连接,获取连接这个代码大家好好看看,这个程序在这个位置是不是有个TRY,这是不是捕捉异常,所以你这个地方获取连接有异常,应该选择拆开还是。
06:14
你是不?对吧,那代码删删完了啊,删完了来。把这个拿过来放哪儿,放这儿。把这个异常怎么着扔出去。为什么往外扔?因为这有抓呀,这是不是抓呀,那你这出异常,你不往外扔吗。这是什么?获取数据库连接对象,返回什么连接对象啊,好了。
07:00
那这块呢,咱们就这个方法咱们封装了,各位咱们还需要再封装一个什么样的方法。释放资源吧,来public static怎么着行不行?传几个参数过来,都需要释放谁?还有用还是用,象你已经养成这个习惯了啊,来result set,那么接下来呢,咱们可能就需要把这个引进来,Statement没写错吧?好,那这块关闭应该怎么关,各位。判断一下吧,如果结果集不等于什么,那把结果集怎么着关闭吧,rs.close关闭啊在这呢,进行一个try catch好了,各位,那这块呢,咱们直接呢,把这个呢,咱们复制一下,然后呢拿过来放到这,然后把这个改成什么。
08:03
啊,然后再往下给它改成什么好,接下来我们把它改成什么好,接下来我们上边是不是写个注释啊,这个注释是关闭什么资源,是不是关闭资源,这个为什么不上抛。因为你这块是不是都是拆开你没有抛,所以这块就不要抛了啊,不要抛了来这个是什么对象连接对象,这是数据库操作对象,这个是什么结果集。行了,那你封装完这样的方法之后再往下。你是不是就基于这些写代码就行了。封装是吧,来再往下close关闭。还行吧,哎,这个可以啊可以。
我来说两句