00:00
我把这些DAO接口呢,都拷到了这个DAO这个包里面,我把这些实体类呢拷到了do这个包里面,然后呢,我把这个可book跟这个配置刚才我们已经写过了哈,放到这个web里面,这是目前的三个包,嗯,下面呢我们需要加入。数据库驱动跟C3P0数据源还有TP,那么我们在前边写。JDBCJAY,我这MVC第一个案例的时候呢,这东西是现成的哈,我们不再去那个包里边考了,我直接拿过来,刚好也有JSTL直接复制过来,因为我们已经写过好多次了,Copy。直接复制到这个里边来。摸一下。还需要什么呀,还需要一个T3P0被一个文件直接复制了。微改一下。
01:05
我只需要改一下什么呀,我只需要改一下,我连的是呃,哪一个这个数据库就可以数据库,我这个数据库的话呢,就bookstore。保存,然后我们拿过来,我们看前面还有什么可以考的哈,比方说当时我们讲的这个GDB优秀可以用吧,数据源获取数据库链接,呃,关闭链接,哎,这个可以拿过来直接用copy。这个应该放到DB里面。And perive the old。我一个数据的,我把这个来。
02:09
C。Ctrl o导进来好了,没错了。就是我们这个。DB,呃,JBCU,还有什么呀?我们在写那个base DA的时候,我们需要用吧,还记得吧,Reflection也考过来。Copy放到YouTube里面。You。行了,那这块的话呢,我们关于这个大写的这个框架的话就搭好了,然后的话呢,我们来写DAO,就是DAO接口,我们来写个DAO的O实现。直接内。包好了,我今天我来看一个。
03:01
找贝DAO。这个base Gao呢,需要实现dau接口。需要提供其中的所有方法。好了,这个需要用谁呢?这个需要用到。Goanna。搞定好了,一个一个具体实现,其中第一个呀,其中这个方法是怎么样呢?这个方法是执行检色的,然后什么返回插入后记录的ID吧,那为什么会有这个方法呢?我们在刚才看需求的时候。那我们这个ins色的话呢,它有有什么要求啊,我们我们要求是哎,我要返回插入的那个ID,为什么会有这个需求呢?我们来看这个PPT。
04:14
我们在后边。执行这个结账操作的时候。会有这样的一个需求,执行这个结账操作的时候,会有这样一个需求,我我干什么呀,我先需要向数据库里边插入那个交易信息,然后的话呢,我需要插入一个一个的交易项。那那个交易项的话,需要知道我是属于哪一个交易的G,我在插入那个trade到数据库里边之后,我需要马上能够获取到trade所对应的ID。这个很重要,所以说的话呢,我们这块有这样一个需求说诶我在插入的时候的话呢,我需要返回记录的ID,我们讲JDBC的时候呢,讲过如何来把过这个ID,但是使用都没用啊,那这一次的话呢,我们需要用上它本身这个插入是容易的。
05:20
Connection。暂时。先这样来写。我们说了,我们到后边的话呢,会有这个良好的解决方案。嗯。他对于下面的每一个方法都是这样。
06:10
好,我们来吧看看啊,这是执行这个插入的,那这个插入呢,跟那个update是分开的,我们知道这个update里边它也可以包含什么,它也可包含隐色的,不过这个隐色的没有那个,呃,ID那个百位值写吧。Cora.update。诶,我要就是用que re去插入的话呢,插入不了啊,能够插入哈,但是我没有办法去获取那个返回值,所以说这个得用原生的JDBC去写,所以这个得用原生的DBC去写,于是写吧repair的statement。然后呢,需要一个。
07:06
等于now,注意我在进行插入的时候,我这个result是干什么的?获取那个ID的来,Connection等于GB cu.get connection。Prepare statement等于。connection.repair statement circle,然后呢,我需要往里边来放一个一个的这个占位符,If。如果。啊,不等于,那如果要是有船的话,那我做一个for循环。Inch I等于零,I小于二,点lengthi加加。Repair statement.site object。从一开始吧,这个是吧,I加一。
08:01
啊。Hey。好了,这面不放好了。然后呢,呃,我要来执行这个更新操作。大家看我执行,我执行更,我执行更新的时候是不是有一个。这个参数告诉我是不是产生这个主键啊,产生主键。这个吗?用的是statement的return generated。Circle,哦,这个不用写,看就可以。看这个有问题啊点。Update。哎,这块的话呢,我执行直接执行update就可以了,你看刚才那个方法是谁的,是不是statement的这些,所以说应该执行它,那么我们在这个前边获取它的时候,可以来标识它,我需要产生这个呃,主件circle。
09:10
脸。Return and teeth好了,首先,然后完了,怎么产生呢?获取主键值。获取产生的。生成了吧,生成的如点值,首先我需要获取这个等于pre statement点。Get generated his,那这个里面这个方法告诉我们了是吧,这里边实际上只有什么呀,它只有一列,那一列的值就是我们的那个组件值,然后这么写一个吧。If。
10:02
点next next有下一个的话,逐渐。Long。ID等于零。Ad等于点。E。产生这个ID。好了,这里边需要干什么呢?这里边需要我们把这个呃,Statement跟result set也进行关闭,所以说关这两个怎么关呢?我们在jdp CU u里边的话呢,并没有提供这个方法,我们在呃。Re,里边在这个DB two里边是不是有这样的方法呀,还记得是哪个类的哪个方法?记得吗?里面有吗?They close。
11:03
可以说只有什么查询的呀,什么什么的,我们看看那个方法吧,我们当然可以干什么呢,可以在这必须优秀,把这方法写了,我去写吧,这样能能快一些。Without such。好了,如果这个不等于空。我就把这个进行关闭。这个实际上也是一个数求连接,错这我们不改了啊。好了,这个拿下来。
12:03
No。好了,我们用这个方法。滚。关好之后的话呢。Statement,哎,官网之后的话呢,我们要这样是吧,我们要保证我们对这个里边的这个,呃,每一个方法都进行测试,我测试一下with DAO copy写个test。新建一个unit单元测试类。所有方法都finish起来。
13:01
好了,第一个呢,这是这个ins。我们看看这个方法吧。我传的是什么?传的是一个circle,一个AOK,写一个的circle等于。Insert into,看我数据库啊。我往这个trade里边插吧,Trade有trade ID的ID,跟这个trade I ID的话呢,都是1TRADE ID。Three。有的。I。没问题,好了。
14:03
嗯。暂时的,我们可以先这么写,我先写一个。不可担忧。对,Book呢,肯定需要继承这个face。好,从它来写,这里边应该穿什么呀?是不是book呀?嗯。嗯,这里边全book的话。我操作这个可以来进行操作啊,不可由过来。在里面。被子吧,就他吗?那就不要了,这样写你BASE1你是没问题的,OK,这样写来看这贝do点。
15:09
In circle2个UID是一,这个new date control的O。Ctrl o,我们需要看一下什么呀?我们需要看一下哦,这里边传的应该是个circlel date吧,是吧,这个不行。再来。You吧?点get time,然后呢都有一个返回值,返回值是一个ID long ID等于CID,我们需要看什么呢?我需要看这个值是不是插入了,以及返回这个ID是不是正确。
16:00
刷新23哈。24版没问题,刷新一下,哎,这个这就这个了,这就是我们的插入的同时可以获取这个ID的,是这样的一个方法,好了,这个完之后的话呢,其他的方法应该是价庭就熟的啊update,这个connection等于gdpc u,然后呢,no.update。这个方法。Connection完事。好了,这是一个近期更新的方法。查询获取其中的某一个对象,那这个时候获取某一个对象的话,我们知道我们是不是需要那个class来,于是。Private face。
17:12
Class等于reflection。You。点。Reflect you?不对吧,是吧,你看这是哪里边东西收BL里边呢,搞的不对啊。点。盖。嗯。点。针对是一个T,然后这个是cat class搞定好了,所以这个以后的话呢,那这个方法就这么写呗。
18:01
首先connection需要获取一下。然后。You。点que查询,最后一个是circle。New bean handler还记得吧,纯。啊。保存一会儿我们需要测试哈,好了,这个返回一个例子。返回一个list connection等于B点。没看。No点。
19:00
样这个方法connection new in handle。啊,这就完了啊好了,或许某一个值。Connection等于JPc.get connection。获取其中的某一个值。Return。还是这个方法,Circle new吧,是吧?Andra。嗯,可以。后边写的是。二返回就可以了,保存旋转一下。
20:04
行。最后一个edge力量。Connection。等于PBCU,求点get connection connection好了,批量的话呢,如何来写呢?批量的话我们应该给它写成。Corona。是是。Circle。啊,完了吧,这样的话呢,这个base DAO就写完了,那后几个测试的话呢,我们需要靠谁呢?后几个测试我们看这个测试方法啊,刚才的话呢,这块写了个base DAO,实际上这个需要需要重新写一下,用这个book DAO吧,Book。
21:00
Book deal。等于new book,我们用它来测,因为我这个里边的话呢,是有这个方法啊,其他几个方法update。book.update circle等于update。Book,嗯,就写一个吧。写其中四的这个sales amount变为10SALES amount。My books said。Sales amount等于10WHERE ID等于问号。
22:03
没问题。好了,然后呢,这个是十,ID是四这样写。好。不是,应该是过了。是不是改了,OK,没问题,下一个下一个是查询,查询一本书出来。去写四口好了,这个的话呢,我们需要看一下,看一下什么呢?看一下我这个book。这里边儿这个属性和ID。看一下什么呀,看一下这个属性跟这里边的这个字段的对应关系,ID author title price publishing date,注意我这块没有下划线啊,Sales amount numbermark这个呢。
23:06
一样的是吧,那这个时候的话呢,我就可以直接来写了。ID。CA title price publishlicing。出版时间。Sales amount。Do。Numbermark from my book where ID等于问号,好了,那这个时候的话呢,这样写还是会有一些问题,因为我最终去组装这个bin的时候,我是不是调用set的方法呀,所以说你得保证这里边的确是那个S所对应的属性,拿过来再看一眼哈,这个大写的大写的大写的,好了回来。
24:17
How do you think this。Amount。No number。写完,OK。等于。Book DA circle 400。能搞到吗?啊,我这个book里边重写的东西是有限的是吧。过来重写兔子的方法。
25:04
这款。这没问题啊。都获取到了4NUMBER。Number这个不对哈,其他几个都是对的。看看吧。过来。这个是number,对是零是吧,啊是零那那就行了。行好,这是我们的什么方法呢?我们再回到这个里边来。这是我们的这个宽RY方法,一个好了一帮的。No。YID小于吧。List等于book do,音点four circle4应该是三本书。
26:08
Sit out。Books。过来看。这个时候呢,我给这块加个换房。对抗。这个方案。没问题吧,123嘛。都获取了啊行好,下一个获取某一个值,获取某一个值的话呢,我就获取所有的这个,呃,所有的记录数。ID。P。My books。
27:02
好,我们看一下这个值呢,应该是in等于。Book DA点。Get single value没有参数。Sit。32没问题吧,最后一个批量好这个批量的话呢,我我我们这样写哈,我们把其中呃前三个的这个sales amount跟这个number都改一下。前三个的string等于update。
28:08
等于问号。逗号,然后是number。等于。Where ID等于这样改吧,或者是ID大于多少的话呢,也可以。小于吧,直接写吧,小于五。小于四就是前三个嘛,Book do.bench口它怎么写?六这是一个什么呀?这是一个数组的可变参数吧,六电。过来,看来第一个变成一。
29:03
E。第二个编程。二二。三三他要求这块是什么呀?是object类型。保存。OK,看一下啊。第三个,发信。哎呦,是不是全是伞啊,有问题。123我们这样看的话呢,只能去看这个方法了哈。O。Circle。
30:00
看一下这个方法,来点bench。这个方法的话呢,它就就告诉我们这么写的哈,告诉我们写一个什么呢,写上这样的一个power,不过这个里边是个什么呀,这个里边是不是一个二维,是不是一个二维数组吧,而我们这个power是不是一个二维数组啊。啊。我们这个帕摩斯我们写的是什么?我们写的是不是一个一维数组可变参数啊,它是不是就是个二维数组啊,我们写的这是没问题的,不过大家看家看这它是什么呢?这是一个,呃啊,我们调的是另一方法啊,刚才调的是它没问题,可变参数有。保存好了,下不到这个里边来。差啥呢?我们传的也是一个可变参数。问号问号ID小于四,这样的话呢,我们寄希望于。
31:07
哦,这个这块的问题,你看你要是小于四的话,大家看啊,你要是小于四的话,那我第一次执行的是一一,然后2233,那这会儿的话可不全是三嘛,懂吧,所以说这个位置你需要改一下,这样的话才能够有个性吧,每个人都不一样,它是几啊,更新第一条记录,更新第二条记录,更新第三条记录,这样就可以了吧,刚才那个都小于四的话,是不是最后尾那个结果是不是就全是三了呀。再看。刷是不是123呢,看见了吧,在这儿呢,123123 OK,这样的话呢,我们这个贝斯DAO呢,就写完了这个base斯DA要是写完的话,在这个基础上我们再去再去写一个一个DAO实现的话呢,就容易的多了,大家现在把这个base DAO的话呢,看一下,然后呢,把我们这些呃业务的DAO account book trade trade item跟user都写上。
32:15
好了,发过去大家看一下。
我来说两句