00:00
这个验证呢,说完了,现在我们来说这个业务,这是什么呀,这个真正属于一个业务操作,就是说我真正去执行这个结账的话,我需要同时执行几个操作。同时执行几个操作呢?我们能想到的,目前能想到的,比方说我买书了是吧,我是不是要去修改这个sales忘跟这个number这两个值要改,这是第一个,第二个你会想到去扣余额吧。第二个第三个你会想哎,这是一个交易吗?我希望我交易里边插入一条记录吧,会想到吧,第三个第四个第四个是什么呢?因为我回头的话呢,我可能我需要去查看我的交易记录,所以说我我我得知道啊,我进行了哪些交易啊,所以说往这个退item里边需要插入若干条记录。好,我们看一下。
01:02
好,这个。怎么插入的啊?还有三本书吧。好了,我们就说这三本书,160块钱结账AAA1,好,我们看怎么结的啊。首先呢,我们说了这个要扣160,能想明白吧,然后my books这个the number减1SAVE want加一对吧,OK,这是第二个,第三个啊,加了一次交易,应该是8月8号这块做一次交易不影响明白吧,好了,还有一个我说呀。
02:00
我这个交易里边具体的内容是什么呢?哎,我需要往这个trade item里边放一些信息,大家看这个数据表啊,有这样的一些字段,第一个啊,我我当前这个item,这个item ID,然后我说什么呀,我跟哪一个不可关联,你买的哪本书啊,买的是这。是什么?回退是什么,这个召化分成思想,什么DBA,什么Ruby OK这块的话呢,我需要知道我买的是什么书,几本。我跟我关联的那个交易的ID是什么,所以说我们这个时候需要同时驱动四张表。看一下。写完注意看这个哈。刷新有。没进来呀。
03:06
等会的看一下这个钱数钱数了,这变了吧,这也加了吧,8月8号吗。OK 25注意哈。对的IDOOK,我们看你这个值没有进来,进来在底下的。刷新。这个值确实是没进来,好了,这只要没进来的话呢,我这边是有问题的,为什么呢,我来查询一下你看。刚才是。AA吗?哎,我这有啊。就是吧,这变成思想。Oracle鲁比。
04:00
51才买的吧,8月8号买的,诶,那我这个就差哪了。有下一页吗?靠,这也对不起啊。是这这不是吗?嗯,这块差的这计算记录25 25,跟我关联的那个交易是25,呃,数量是一,嗯不开D123本身的ID,呃,59,六十六十一,所以说我同时需要去插四张表。好了,那于是看一下我们这个时序图。这个字有点小啊,因为本身这个头太长了,第一个我需要去改什么呢。第一个我需要去批量的去修改store number跟sales amount需要去修改那个呃,库存和销售的数量,第二个我需要去更新余额。
05:01
这个我需要去插入一条记录,它呢,我需要批量的插入若干条脆的item,还有一个是什么呀,还有一个。我需要清空购物车,你不是已经结账了是吗?我使购物车清空。整个这个操作算。完事,这就我们整个的一个业务操作。推车盘。你就结账了嘛,所以说购物车需要清空,所以说12345同时有五个步骤需要写。好了,那首先呢,我们把这个业务搞清楚了啊,然后呢,回来大家先需要做的就是我是不是还差两个do危险的。一个是脆的DAO,我里边插入一条记录这个钙它是干啥用的?在我查看我这个详细信息的时候用的,所以说还有一个get的方法,还有一个trade的item DAO,这个是第一个啊,批量保存的,批量保存trade item,还有一个是获取的,根据这个trade ID来获取trade item的集合。
06:17
好了,大家先把这个DAO写完,然后尝试着来把这个写一下,写完之后的话呢,你可看到数据库这里面的变化。还有还有那我们再看一下这个我们下午的时候讲啊,是一个重点,我这些操作是不是应该是一个事物啊,要么都成功,要么都不成功吧,你说哎,我这个也这个我这个更新余额了是吧,但是呢,我的这个超过比我们,我们这么说吧,我把这个库存给改了,我把的这个嗯销售数量改了,但是我余额被扣,就是说我只有这个成功了,我底下的都没成功。
07:02
这样不行吧,所以说这个操作要么都成功,要么都不成功,他们应该是在一个事物的。基础上,那我现在的话,他们并不是在一个事物的基础上,为什么呀,我每一个操作是不是对应的一个connection呢?我们在写这个base DAO base DAO的时候,这块,哎,我们每一个里边都有一个connection,所以说我们还需要解决事物的问题,所以说下午的话呢,需要说一下这个stress local。以及如何使用select logo加上filter来控制事物,但这个呢,我们下午再说,大家可以现在的话呢,先把这个事物先放掉,先把这个效果先看到,就是说先写这个DAO,然后呢在那个service跟那个service里边,把这个操作先写完,看一下效果,然后我们再来说关于事物的问题。好吧,大家先来搞这个DAO吧。
08:04
我们把这个流程写写完哈,那我们先需要把这个DAO写完,DAO还有几个DAO啊。看看第一个是book DAO的这个方法。需要打开保存。Book DAO这个方法加上。保存。Control the whole。Optic。好,那这个方法呢,应该是干什么用的呢?就是批量的去更新number跟sales amount。批量。String等于update。
09:06
My books。S。Sales卖多少个?的是。等于。Number减问号吧。Where ID等于问号多个吗?Circle,这个传什么呢?这个是传,嗯,数组的可变参数。那这该能打传呢?
10:05
大家想我这是shopping items这里边这应该是quantity,这应该是quantity,这应该是ID吧,是吧,那写吧,Object,这个object可。等于no。保存哎,这样可以存好,存好的话,那么的po等于啥呀。等于new object。大家看第一个应该是什么it的size吧,第二个呢,几啊?三吧。就是说我一共是需要去更新这么一套记录板,然后一个里边是不是有三个什么呀,是不是有三个变量啊,进行初始化去。
11:04
For循环。Icon。Int版小于iPhone点。SI加加,然后呢。我们首先我们需要使pars,大家看我要是这样写的话,我这个变量是不是已经都分配好了呀,那就PAR。I的零等于什么?一等于什么?二等于什么?是这么写吧,这顶等于什么呀?埃斯点。因为我这块的话呢,我需要用到这个I,但是我在进行循环的时候,这不是输出collection呢,这个collection不能直接get,那我如何来获取这个第一个的这个这个值呢。
12:13
看一下啊,看一下什么意思啊,就是说我在用这个数组的时候,我是不需要用到这个I呀。但是我在获取这个collection里边的一个一个值的时候,你发现一个什么问题啊。我没有办法,我通过I去获取这个值,所以说我们给它转一下嘛,让它变成I。嗯。Shopping。看。等于六人。List。Fraction。OK,这个时候的话呢,cis.get i.get quantity是这么写吧,这个也一样。
13:10
他呢?他是什么呀?点get book.get ID是这样吧,但是我们需要测试一下。CTRLC找到。Do。咋了?有问题吗?那我先测试了啊。这个。Public test and test。过来,OK。
14:01
看看这个方法啊啊,这么写的好了叫shopping,那我写个。Shopping car it it等于new list OK it.boos.I new shopping cut it。这个呢,我需要一个一个的book。刚好有DAO。等于book DAO点盖100。好了,这是一个book,但这个里边我们还得有一个什么问题啊,我们是不是还得去搞那个数量啊?所以说把这个拿出来吧,Shopping card item s1等于new s。
15:05
等于new shopping item book,然后呢,fbi.set qua,那我写个十本。然后这是。ST,这是一个吧。下边。等一下。信。这个不要了,这个也不要了。这个呢,我们变成11本,这个是第二本书。这个是第三本书。变成12包。第四本书。
16:01
变成14本。好了写好了,写好之后的话呢,Book DAO。点bench。欧好看这个。My books。注意这个啊。变成100。1234看这个绿化就可以了。先跑一下。过了完。刷新。是减的是加了吧,对吧,那整个这个操作呢,就写完了,这就是我们,哎更新库存和卖多少本书的这个方法。这个完了啊,这是我们讲的book DAO的DAO提供实现去。
17:02
的Du ctrl c。我们DAO呢,已经写的这个好多了,是吧,大家到目前这个情况的话,去写这些DAO应该是一件比较轻松的事,如果你现在你觉得写DAO还那么费劲的话,那确实是有问题。我们讲GDBC,从讲GDBC的时候,我们就开始搞这个,搞了这么长时间了是吧,你说你搞数学在写还费劲,那你可以你可以找你可以找我是吧,可以给你辅导一下呀,还是怎么的呀。就不改费劲了,讲实话是吧,看这个插入啊,我要插入一条记录这。Circle等于。也。什么呢?
18:01
看啊ID不用UID跟time。Tree。U的ID。瑞达泰。Value。OK,然后写一下吧,应该是。Update就可以circle,后边这个点get。UID后边new给就可以了。Circle new。点塔time起过来好了,这个呢是获取的,根据UID获取tra的集合。
19:04
注意这个方法啊,我根据U的ID的话呢,获取T的集合,就是说看这个里边你看我就我UID一样是不好多呀,我把这个这这的集合弄出来,那写一下吧。的circle等于。Select。看着叫PIDID,我们得看看这里边怎么写的啊啊ID time。You的IDOK。You ID Twitter time from。退。Well。UDID等于问号。Qua。Circle you the I写完。
20:03
哦,反问的是个什么呀?是个set是吧,Set怎么办?六哈西。Thanks。N。或者。保存安装。写完好了写完了哈,好了,那这个的话呢,也需要测试一下,对的do。只类啊,等于特类。Trade的DAO。Trade下一步两个后来。
21:09
去的。Do。等于六的。宾OK第一个染色体。也色了呢,先需要给我个退。G等于六。And all。去点S。我需要放的是time哦,这个time的话呢,这块也有是吧,那这个time我们放的时候怎么放的,刚才啊,我刚才我拗了一个是吧,不用拗,他从里边能带过来,能带过来的话也行。他带这个类型是什么类型啊,看一眼。
22:02
这个类型那好吧,那要能带的话,这块省事了。去点get。Three time。Oh。点get,你看OK。UID。求ID的话呢,我们写个一。嗯。User。嗯。写个三吧,换一个人啊。写个三来。点set new。Circle new GA。YouTube的。点get time。写完,然后trade的DAO点。
23:01
眼色去看效果。过了。Three。就这三吧是吧,这插入的吗?我把它去掉你看。三没问题,新加的行,这个OK,下一个的话呢,获取集合,获取集合的话呢,我们获取这个。这样写,我把这个改成二。二这少看着效果能好一些是吧,要不那个太多了看不出来S。等于trade的DAO点。Guide。二。Sounds tree。
24:02
Trade的goo重写一下。重写兔子方法。这里边呢,我们只是重写ID。跟这个不同学了,因为这是一个集合,这个集合目前这种情况下,我们并没有办法直接给它获取出来。我们没有回头的话呢,我们需要装。保存看效果。两个。两个27。17。27。17哦,三个是吧,二十五二十七十七是这样吗。还有个25,嗯,没问题,好了,这个结果的话呢,就OK了,这是我们的trade的DAO,还有一个trade的item DAO c过来。
25:01
I。大家现在有没有一种冲动啊,说老师你这个就不用讲了,我自己能搞定。有吗?有吧,是吧。就是讲这个DAO啊,就太重复了是吧,以后的话呢,DAO就不用讲了,我都我全部都自己搞定。看来大家目前啥情况啊。还是觉得写这个DAO很新鲜啊,觉得诶,这是个新技术。嗯。Save,这是批量进行插入的insert into trade item。哪个?
26:02
这个平插入好了,这个不用写,后三个都需要写book ID quantity跟ID。Book ID跟trade的ID都需要写过来,Value。123。好了,又是一个批量的,批量的咋写来着?Object吧。X啊吧,等于6OBJECT几个呀。It点算吧,这是几个三个三括号吗?然后直接去掉那个变值方法哦,没有集成。嗯。
27:01
贝斯DAO。睡的哀痛。Circle写完好了,这个假话的话呢,跟前面一样,我需要初始化,所以说先搞一个。写啥it,然后for循环in I等于零,I小于。除item.size I加加这然后呢。我是不是得一个一个赋值啊。零啊ii的。零等于什么?好这么写,第一个等于啥呀?啊,这是一,这是二,不D能搞出来吧?
28:13
不开地应该是trade its。点盖。I点大家看第一个叫不开D,有不开D是吧,我们也可以直接走,不不可以可以,但它只有不开D。Book ID。一会我们测试的时候的话呢,需要再好了第二个quant。第三个,吹干地。喜欢。
29:02
一会儿测试哈,这个呢。根据垂直ID获取它对应的集合,是不是跟上一个差不多呀。Select。好了,那我获取的信息的话呢,就这么多,呃,Book ID quant跟ID。播ID,还有ID from。吹的item。没有S啊,Y的ID等于问号这块是不是在大写的话,是不是得看垂啊。而如覆盖地、替代地有。过来,好吧。六。六阿西。F。
30:01
这块应该是this circle。吹的,哎,你是这么写吧?保存。再来。Do。Unit。对,The test。Private trade。Do等于六。所以的DA,第一个废物。Trade DA点。泛指。
31:00
What?嗯。脆的DAO点油。去单。我写错了就。所以的X方Bo写错了啊,等于六。Trade item do。然后呢?Trade item bench save OK,集合collection。税的A等于六。啊。例子好了,放放直吧。it.i new trade。
32:04
It层,好了,有一个过长器离构造器,很明显是为了帮我们测试的ID。不用了,Now book ID写个一吧,Quant写个10ID我们已经有了啊,25这个ID指的是谁呀?是不是这个是吧,25不该地,这是一。经指定了啊,下来写几个。看看哈,第二个是book ID,然后quantity好了,Book ID。2345。二十三十四十五十这个的话呢,用一个吧,这没问题,保存看效果。看哪个,看这个。
33:04
刷新这个带有上一页哈,你们直接看这页就可以了。从六十一开始加,加几条呢?加五条。过了刷新下五条吧,看见了吧,一二三四五十二十五没问题,好下一个的话呢,就获取T艾特的集合。List啊。Fat。吹的。Item item等于。等于什么呢?It do.get with it,我返回25的这个items,然后sit out it。
34:07
这个item过来go出论写一个出示一下。Two three。不都需要啊ID。Quantity覆盖地够了。保存回来。是可以呀。翠的icon ID是空。这不应该吧,是空不应该啊,因为这个ID的话我们还得用。我没查是吧,看见了吗?这ID需要查,所以呢X方ID。
35:00
对抗。换其他部队。IO买Y。你看这个时候的话呢,这问题出来了是吧,这个叫item ID。设置方法呢?对。T。Item do。你去哪去了?退啊。哎,那我这推的do呢,我我写一起了。去改一下,去改总给我啊。那我以前那个do呢。我给覆盖了。
36:04
嗯。我在哪里?好,我们来看它吗?这个里边的话呢,你看推这个加构叫程是不是叫推at麦啊,而那个叫at麦,所以说你在写这个时间类的时候的话,你就有点问题了。这个方法CTRLT拿过来,这叫。啊,这么写。Item ID用别明白,要不的话那个值你就获取不着了。行了,这就可以了,好了,那这样的话呢,这个DAO就起来了,我们只有有了这个DAO的话呢,我们才能够进行后边的这个业务操作,就是说后边后边的这一系列操作的话呢,是需要干什么呀,是需要借助于DAO的,所以说我把DAO写完了,下面的话呢,实际上我们就是在service里边一个一个去调那个DAO的方法,当然在调DA方法之前,你得把传给do那个参数准备好。
37:18
大家把那个DAO看一下,然后尝试着来写一下,看一看有没有那样的一个效果,给你买几本书,然后一点那个后边的提交,诶,你发现我同时操作了四个数据表,看一下,到目前为止的话呢,这个代码再写的话,呃,没有那么的多了,因为do已经写完了是吧?你需要做的是把这个流程搞清楚,其一,其二,在调dau方法之前,需要把传dau的那个参数搞明白。
我来说两句