00:00
按照顺序啊,首先的话呢,我们来建数据表搜已经给了CTRLC过来。在硅谷里边黑这个有给他干掉。CTR。右键执行。把F。Customer。他就是然后的话呢,我们还有一个什么呢?我们还有一个说加一个为约束,为约束给谁呀,给name。带回来干掉。右键执行好没问题。I酷刷新。
01:03
行了,这样的话呢,这个数据表就建完了,建这个数据表没有那么多的技术含量啊,下一个我们需要去加入C3P0数据源,加C3P0数据源我们需要分几步啊。我们需要加两个包吧,一个是C3P0的包,还有一个什么呀,不能驱动啊,数据库驱动的打包,然后的话呢。这个DDBCU就可以写了,于是加两个价包。注意放到lib目录下,这是一个什么呀?这是一个web应用,放到Li目录下,而不是单独再创建一个Li,然后再加class,直接加入就可以了。我们找。一盘。Java。Open source。
02:00
第30CC一个。它会自动的给我们加到这个下边来,所以说我们不用再像以前那样,以前之后还得艾特一下呀,现在不用了啊,直接加就可以。再来一个。Open source my circle。买circle的驱动,CTRLC。CR放完。好了,下面的话呢,我需要这个,嗯,加C3P0,我们还需要一个什么C3P0配置文件吧,直接找到找到C3P0DO有一个index。好,我们去找。使用配置文件附录二。这就是。
03:02
CTRLC叫C3P0.xml。在src下新建一个配置文件。XML。名叫C3P0横线很这点X next next finish。加进来保存。我们呢,直接留一个name的。嗯。这不要了,这个呢,我们用MVC。嗯。就是如果连接不够的话,一次向数据库,一次向数据库服务器要多少个,我们要要五个。初始化的个数始稿。
04:01
最小连接数十个,最大连接数50个。最多的statements。20个一个链接可以使用多少个statements,我们使用五个,五个就五个吧,啊后边这个的话呢,可以干掉了,还需要什么呀。哎,都删了一个啊。它需要一个连数据库的基本信息吧,连接数据库的基本信息跟这个写法是。一样的name啊,应该是什么U啊,Password那些东西我们过来看一下吧。这里边儿。往上涨一定是什么。URL。嗯,就在这呢,你看优password jb c跟class,是不是把set拿掉,第一字母变小写啊?
05:04
这不扎宾的属性吗?来过来,有点。841230。Driver。Come my circle的C的driver。It b c u l。BC买circle硅谷写完好了,叫MVCAPP。CTRLC过来下面的话呢,我们这个关于C3P0这个数据源,这个环境就打好了哈,下面我们应该来搞这个jdb CU,其中有一个方法叫获取链接,那链接。
06:02
That they are so。等于no好了,需要注意的是呢,我们这个是是什么呀?是一个静态,为什么是个静态,因为我只想使你这个数据源有一份就可以了,所以说初始化必须要放在这个静态代码块里边,这个静态代码块是不是。只被执行一次啊。再说一遍啊,这个静态代码块只被执行一次,所以说aso等于new com。Put little songs。写个名给他这就可以,然后的话从这里边获取链接看着。Data source.get next好了,有异常暂时不管,往外抛,异常的话呢,后边我们会统一来处理,写完。
07:05
这就是呃,获取链接的方法,我们做项目的时候,我们每写完一个小功能的话,需要给他测试一下,测试一下新建一个。包,这个包就叫test,那写一个单元测试的只有哪个单元测试类?叫什么?Dbc u9。那我测试的实际上就是jdb CU。方法我们测的话,我们只需要说这个get就可以了,这个不用测finish OK,好测一下ctrl shift o。等于gdbc u get。
08:04
异常往外不管。再来。跑一下。是不是没问题啊,这样的话呢,这个方法就写完了啊,这里边儿我们需要注意的是,注意的是你一定要把数据源的初始化放到一个静态代码块里边,因为这个数据源只能被初始化一次,数据源只能被创建一次,你创建多次的话呢,语法上是没问题的,不过你创建一个数据源的话,是不是需要是不是需要占很多资源呢。里边养了若养养了若若干多个链接,那你要是每创建一个的话,同学有有同学是这样写的,我看到了。
09:08
就这么写,这样的话,相当于你每获取一个链接就是有一个这S版,这成本太高了,所以说啊需要这样写,行这个方法的话呢,很容易pack catch。啊,异常,这个异常我直接打印就可以了,然后if。不等于now。对吧,释放链接的方法,这样的话呢,我们第一个要求就OK了。C命钟数据源这里b CU to,然后我们来看DAO,看这个DAO的话。这个方法这里边儿了哈,没有实现这个我们需要使用。
10:00
DB找open source comments DB。谁告诉我第三个,第三个呀,第四个。复制加到这个里边来。好。然后呢,我们创建一个宽的对象。等于又一个就可以了,因为这个是现场安全的。好了,然后呢,我们需要在这个DA里边来确定这个class吧,怎么确定来着,在构造器里边来进行确定,好了,我呢不把我们前边写的那个reflection u复制过来,我们重新把这个代码写一遍。
11:07
怎么获取呢?首先我需要获取一个。啊,这么写吧,Get class,这个在具体执行的时候,这个是不是得到子类所对应这个class啊。然后get class,我要得到负类带泛型的那个类型,这个值应该是一个T。Con o。反射里边的,然后呢,我们说如果。它确实是带餐的话跟什么呀,跟proterized的ter。At the time。
12:03
一样的话,那我就给你进行一个转。Super class。然后怎么写进行一个ized。等于。啊调什么呀,我要获取真正的这个泛型的参数。White的点that。Actual type等于这是什么呀?这是一个type。等于叫XX。那我们的要求是我要获取第一个,那if if什么呢?如果这个里边type X不是空,而且。
13:03
X的认识还大于。零的话,那我就获取第一个,这一个第一个是什么?第一个得是个class。写吧,第一个得是一个class,那就是type。As。0CLASS,那我于是我就把你啊,于是这么写就等于X。零就可以了。这个的话呢,我们在前面讲类似于这个,我们在前面讲讲那个反射的时候,我们详细的讨论过每一步都是什么样的,如果要是大家实在是不清楚的话,你回去看一下讲反射的那个视频,每一步一步的,我们这块的话呢,不能详细来说了,好了,我这个写完之后的话呢,我就想测试一下,怎么测试呢?诶我们这块有一个。
14:12
Customer DA o gtpc,我是不是继承了它呀?哎,我继承了它的话,就意味着我在这个里边的某一个方法里边,我能够获取到这个class,于是close s到这个里边来,DAO,我们找到我们的。我一。South class,但这个值是不是的确获取到了,好了,这个测试的话呢,我们就测试这个,嗯,它通过DAO接BC就可以了,过来CRLC测试在这里面。Jones单车之类。这个。
15:01
OK next全选都需要测好。我们现在测的呢是。大片推。出事吧。Private customer do customer等于6CUSTOMER DA t bc。好,我要来测这个方法。Customer GB DAo.that ID,我选个一随便写的啊,这个返回值应该是一个,如果要有返回值的话,返回值应该是一个customer等于它我目前没有值啊,我们想看到什么呢?想看那个对不对?一下又建rise unit test。
16:02
哎哟,那不是这个方法过来。CTRLT。骑哪儿去了?没写这里边了是吧,啊,我这个里边怎么样,是不是还没掉那个负类的方法呢。这块调度方法。就这样写一下。先这么写吧。叫get。我应该是叫super,这个是吧,先写成now,这个也写成now,只有这样的话,我才能够看到刚才我写的那个代码。再看。就这个,哎,我这个写法是没有问题的,好再回到我们这个do里边来,那这一步呢,如果大家不清楚的话,回头去看以前的视频,以前视频的话,我们是一步一步加到注释,一步一步写的,好了这个OK,之后的话呢,我们来看方法吧,第一个update,我们说我们在这里边直接来获取链接,就是比较让我们爽的地方是吧,好再开。
17:19
Finally要关闭链接JDB.release。OK,有异常暂时先打印。打印一下啊,然后呢,这块我需要来获取链接AB bc u get connection,然后咋写啊。点。Update吗?传一个connection,传一个circle,传一个这东西是不就完了,这就是我们。
18:01
修改的方法,一会一起来测试好了方法方法。有一个流程是一样的,等于catch。一点familyc YouTube.release然后是。这都一样。C、下一步还用。Connection等于啊,G b get这个都不。CTRLC咋写啊?叫。点方法吧,最后一个。
19:04
Connection。Circle,这应该是谁呀?获取一个new in handler,还记得吧?In handler一个class,后边那个呢?进行一伽。想软刀不用这就可以了,获取一个的,这是获取一组的。是不是很类似啊?后来来直接了哈,Return qua.qua。一组的connection circle new in handle。大。完成。再来就是获取一个对吧,获取某一个值又类似。
20:03
获取某一个值。就是这个circle new吧,还记得吧?然后。B。需要进行一个相转,这就起来了,好了,这个测试的话呢,我们可以直接来测这个DAO,那我现在我现在我直接来写它,我在这个基础上来测。看一个一个写吧,第一个获取全部的。String等于。Select ID name。Address,下一个是from。没有了,直接。
21:05
有错了啊,这是啥呀?这是不是测试了呀,我应该去这个地方来。这里边好了,这个里边get out。这些地方写circle等于。Select ID name address。From GA。括号是不是没有对吧,全部。写完保准。等于。In s into。要写哈,Name address。
22:00
然后呢,写123逗号,逗号什么方法叫update方法吧,Circle是customer.get name customer.get a dress,他他妈点get phone。再来下一个盖不举一个的。等于。Select ID name address phone from。Where ID等于问号。第一个是。第二个是it版。的等于。
23:04
Delete from where ID等于问号要的是A。Circle ID,好吧,还有一个用名字来获取point。这是circle等于。Select ID from。Where name等于问号?这怎么写啊?吧,后边是。那写完好了,下面主语来进行测试,在这呢,先测添加的方法,我先需要创建一个customer。
24:01
等于new好了,点size address来北京,他点site ID,不用name mike.site。13130012811。DAo.C大好好用啊。嗯,美图异常。出现了,这就是保存的方法,我们都多写两个。上海Siri。
25:01
1372099864。行两个,好了,Save OK,好了,那get in这个应该可以获取了,获取一打印直接能出来。初九啊,麦克吗?哦。Get返回的是一个list customer customer等于customer。do.get。跑一下。是不俩呀,ID是一嘛,ID是二嘛,对吧,完成还有什么方法。
26:03
还有一个删除,后面还有一个啊删除,我们把一,我把一给删了吧。卡DAO点比例一。再看。一注没了,好了,最后一个用名字来获取吧,等于。看怎么do.get放来,我先写个ABCAABC中没有啊。他应该是零。零八。再看。
27:02
100行到这块的话呢,关于刚才我们让大家写的几个类的方法的话呢,就写完了。你把你没写完的给他完善一下。
我来说两句