00:00
来接着看我屏幕啊,我们已经把这个购物车的详情啊,已经把它搞定了。那下面一步我要做的功能是结账。点击这个去结账。当我点击去结账的时候,我们的我们的动作应该是什么呢?我们要经过,我们要经过三步。第一步,往订单表。往订单表添加一条记录。表明谁在什么时间花了多少钱。这是订单表。第二件事情。第二件事情,往订单详情表里面,往订单详情里面记录,1234567记录七条记录。每一条记录对应的都是某某某用户买某一本书花多少钱。这是往订单详情表记录。第三件事情,我应该从购物车项的那个表里面把七条记录把它删掉。
01:00
这样我下一次再登录进来的时候,我的购物车里面就清空掉了。如果我结账完之后,不把购物车项这个表里面的数据清空掉,下一次明明我已经结账过了,但是我发现我购物车里面这七项还在。好。下面我们把这个过程先把它先写下来。写代码之前,咱们一定要先把思路先捋清楚。回到这儿。好,第五个是结账的功能。结账的功能我们要经过三步。第一步。订单表。添加一条记录。第二件事情,订单详情表添加七条记录,反正我就是根据现在这个情况来嘛,有七个嘛,行吗?所以这个大家复习的时候不要觉得老师为什么你写死了,写个七啊好。第三个是我们的购物车项表中需要。
02:01
删除对应的七条记录。是不是我们要完成这么三步?第一个是订单表。要添加一条记录,所以订单表呢,我们得需要有一个添加功能,那我们首先要找到DA,找到DA我需要点一个O的。我们P里面写的是O的B,所以呢,我这边就写一个叫O的并DA行吗同学们。叫old的并do或者叫old的也行吧,啊,就叫old的do。好,我得写个方法。Avoid叫ADD的病。好,我得写这么一个方法。啊,叫爱的奥病。这是添加订单。添加订单这么一个功能。然后我得再写一个接口。Order。Item。All the item do。
03:02
这个里面第一个功能叫添加。订单项。这么一个功能,VO ADD item。All item。啊,得有这么一个功能,添加订单项,那么这个方法可能要执行很多遍。啊,可能要执行多次。再来我还应该有个叫卡item哦,这边已经有了卡item do,因此我在里面添加一个方法删除。指定的购物车项是不是啊,删除指定的购物车项。Delete item,好,我们需要一个in ID。或者你写个cut item,随便你的随便你啊,你写卡item也行,写in也行,或者这样吧,就写它没问题的啊,没问题,你如果写成cutem,大不了你封装一下呗。对吧,这没问题啊。好。这三个接口的方法我都已经把它写好了,下面我得去写他们的实现类。
04:01
咱们先从O的开始,O的do开始。我们写个时间类。点。DA。继承。Best deal。我的兵。Implement。没错吧,好,实现它其中的一个方法。好了。那么艾特这个方法,他给我们做的是个添加功能嘛,super.xq。Update是吧?Insert into t-O的表,看一下数据库。表。那么O列表里面ID是不需要我们添加的。它的字的列12345,得需要五列。音色的into order这个表。Values。第一个是自动类,不管它一个两个,三三个,四个五个。
05:00
我得需要五个。啊,有问题吗?1234对的嘛,五个嘛。啊,没有问题,大不了最后一列,你给他一个零也行啊,不给也行啊,12345中一五列。OK。我的order order。在这好。来看一下。呃,那这个怎么写呢,这个其他报错先别干扰啊,就咱们不受他干扰,全关掉好。那这总共有五个值啊,那咱们五个值就往里面添加呗。病。Get old number。没错吧,第一个,第二个是all data all病点get all data。这第二个。
06:01
第三个是all user。我的病。点get old user。点是不是get ID啊。点。盖他就这个。再往下一个是all money是吧。好,那O的病。点get。All the money,接这个呗。我的妈。再往下,呃,下面一个是all status是吧。敖的冰点。Get。Other status。那行,这是一个方法,我就把它写完了。你先别管怎么调用。啊,总之我现在把它写完了。好,这是第一个。再来。一个订单它对应的有七个订单的order item,那行咱们再回到order item。Order。Item DAO就是它。
07:02
那咱们得回到它的视线内。时间内我们洗了吗?好像还没写呢。是不是?所以咱们写新建一个吧。MP.order。Item do po行吗,同学们?然后继承。Best。Item。实现一下all item DA,好实现它里面的方法。可以吧,行,咱们再回到欧看一眼啊。就这个。再来就看一个就可以啊。好,然后呢,点XQ的update。Insert into t-order杠,Item。Values第一个是自制猎,不管他吧。呃,第二个是book,那就是,呃,稍等啊,一个两个三个三个问号没错吧,咱们开始写all the item.get a book。
08:04
碟get ID呗。是不是第二个是all的item点。爸,看看他呗。行,呃,第三个是。Item碟。Get all病点get ID是不是写完了?啊,这个功能我也把它写完了。行。再来,咱还剩一个。购物车项里面的要删除是不是?Cut item do。好,就这个报错了,这个好,因为它少个方法嘛,咱们刚才往接口里面加一个方法嘛,是吧,那现在还没添加,添加一下。好,要删除。所以点XQ的update。Delete from。T杠,Cut杠,Item view ID等于一个值吗?
09:05
item.get ID。好。DA层的方法我现在已经全部实现好了。下面我们要回到service。回到service里面。OK,这些都没问题。这些也没问题。咱们现在回到设备尺寸。呃,设备支撑。我们现在呢,我们怎么做呢。我们要完成一个结账的功能,结账。结账。好。我在这边新建一个接口。叫O的b service。叫old病。咱们上面这个do层叫all的do,要不这样我把这个B把它去掉,我就叫all service层行不行?
10:05
和这边保持一致啊,删掉。然后呢,咱们再来rename file。重命名一下吧。重命名。那行,我要给他要完成一个结账的这么一个功能。啊,我要完成一个结账的功能。我们怎么做呢?结账。结账。那行吧,这边我就写一个VO叫ADD order。我就写个叫艾奥的病。那要完成结账,肯定需要一个OB。我肯定需要一个all的病,那么all的病和all的item是什么关系呢?
11:08
我的病。O的B里面是不是有个叫欧的item这个集合呀?所以同学们,所以啊,我往O的表里面添加记录是没问题的,然后我往O的item表里面添加记录也没问题,因为这两者之间是有关联。对吧。但是。购物车怎么办?购物车怎么办呢?我这个O的表里面。这个order当中我也是有个user的。我如果将来我在前面,如果我能够把这个use塞到这个O的B里面,那也行。我通过user是可以获取到购物车的。那么购物车里面又有每一个购物车项。那么我就可以一个一个的去点delete的去删除。
12:00
好。所以我再回到service。我刚刚我刚刚这个这个这个嘀嘀咕咕说了一大堆,就是我一个思考的过程,我这边到底需要一个参数,还是需要两个参数。就是我思考的过程,你写两个参数也没错,你写一个参数也合理。你写一个参数,将来你就再把user设置到这里面去,不就完了吗?你写两个参数,你来不设置不就也可以吗?我就写了这么一个方法。叫爱的我的命。下面我们要来实现一下它。点order。Service。实现一下,实现一下其中的一个方法。好。这里面需要完成三步骤。Can'you see。跑过来。
13:01
好,把它放到这边啊,我们需要完成三步骤。好了。第一步,订单表,我需要去添加一条记录,我既然要是用了订单表,那我肯定就需要all的。我肯定就需要他。添加一条记录。所以O的do点爱的我的边,我的边。这边我顺便提一嘴,我们在执行添加的时候,我们的best do里面是不是写过那个音色的获取资质类的那个那那个操作。还记得吗?啊,都忘记了。来,为什么我要说这个事情再来,咱们再来回顾一下。你看一下O的表,这是一条一条记录。比如说这是四号订单,你看一下old item哪些属于四号是不是啊?是不是我这个O的item里面有一列是外键啊,我要引用刚才那个组件啊,那我往O的表里面添加一条记录,我是不是就要获取到当前新生成的那个字段列的值啊。
14:05
是吧,同学们好。那我们best DA里面,我们在执行in色的操作的时候,我们是把这个字类的值重新又付给这个对象了。不信咱们再来回顾一下,打开给大家看一眼。我们找到那个library。在这打开。打开。打开,再打开,找到我们的best丢打开。找到他,咱们一起来看一眼。往下走。XQ的update呢?啊,在上面吗。在这。你看啊。呃,这是四个语句。这是我们要认的参数。如果你是音色的操作,你看啊音色的操作。音色的操作在这儿。在这个地方你看。是不是我们XQ的阿,是不是把这个参数值给返回了,也就意味着我们返回的是什么,我们返回的是不是自动内的值啊,如果我们是音色的语句的话。
15:08
对吧,同学们。好,所以因此。因此,我们要执行O的do的I的方法。稍等一下。啊,我们回到他的爱的方法点进去。再点进去,你这边执行update,是不是它应该有一个返回值。哎,是不是行。ID把它接收下来,然后order b.set ID。All ID把它设置进去。我就做了这么一个操作。好,我写到这。
16:01
为什么要设置上去,因为我们后面要用。因为后面是要用的。总之,现在大家只需要知道我这个添加方法,这个添加方法一执行完,不仅把old并扔到数据库,而且这个对象内部的ID有值了。本来我在执行这个at方法的时候,这个O的B里面的ID是不是now。是吧,它是一个带插入的一个数据吗。那我一执行完这个操作之后,他的ID是不是就赋值了。那它负值是不是从这边接收的参数啊,而咱们刚才那个best丢里面这个方法是不是它的返回值,如果你是映色的,它的返回值是不是就是新新创建的那个自制类的值啊,新产生的自自制类的值。OK。所以这是一步套一步的再来。所以我们再次回到service。第一步搞定,执行完这个操作之后,OB里面的ID是有值的。写在这儿。执行完这一步。
17:00
All的病中的ID是有值的。啊,是有值的。再来,这是第一步。第二步,订单详情表要添加七条记录。点get。All the item list是不是能得到一个list呀?好,Old list行负循环。All the item。冒号all item list。然后我们回到这。Private or item?DA,是吧?All the item deal。然后CTRLC点的。Order item。嗯,我他呢。这个应该是这边没有写那个变量是吧。是吧,忘记变量了,好放在这对不对,不就是这样的吗。
18:02
没错吧,就这样。再来。这是我们第二步操作,我们添加完了。好了,但是但是同学们大家需要注意。我们在添加all item的时候。我们在添加all的item的时候。他是不是最后有一列叫O的病啊?那那默认情况下,每一个O的item,它里面的O的病。应该都是空的吧。是不是?嗯。我通过它获取的all item list。啊,因为你这个凹的病是外面传过来的嘛。我们外面传过来里面里面的O的,他这个O的病还没有ID呢。所以说你get all item,你说你all item里面的old病有吗?其实是没有的。
19:03
啊,不信的话,大家咱们可以一会儿来试一下,假设我现在不知道,我就这么写,这是第二步行吧,当我没说过,先写一会儿我报错给大家看,不叫报错啊,第八个给给大家看啊,咱们一部分来分析。大家现在听的话坚持一下啊,信息量这个有点大是吧,因为这个确实是的一个问题,有些时候你考虑的时候确实考虑的比较多啊,需要考虑的多一点。咱们现在执行第三步购物车项啊,这个表中需要删除对应的几条记录。这对应的是第一步。这对应的是第二步。好,下面咱们要写一下第三步。好,接着对应咱们上面的123。首先我得获取到all病点get。是不是也叫all use了?是不是先获取到这个用户嘛。
20:04
Current user。然后在car的右侧点get,是不是有cut呀?得到这个cut,再点get,是不是也叫cut it map呀?就是他。好,卡特卖吧。然后再来负循环。卡。冒号map.value可以吧?去迭代他。我们要删除每一个卡,那我们是不是得调用cut DA啊?好,就是它。选中他。回到这边来,点delete删除卡。是不是把每一个卡带怎么都删掉?只有你完成这三步,这才算是一个添加订单的一个操作。
21:04
这才算是一个结账的操作。好,这个四位字我写完了,现在我要回到O的。的。稍等啊。回到controller里面去,我们可以创建出一个O的controller。Order controller里面public string,比如说我写个范围叫check out结账。结账这么一个功能。啊,我需要写个结账功能。结账成功之后。无所谓了,咱们先到index上面去。那么结账我就需要调用刚才的方法。回到这边来。Private or service?Service。然后他all service.add的old的病,那我得需要个old的病啊。
22:05
是吧,同学们,我得需要一个old的病,这个old的病怎么创建呢?我们来查查看一下波B它的一个结构。嗯,稍等啊,还是把它放到左边。这样看会好一点。来看一下啊。欧里面需要这么一些信息。第一个资金链我们不操心。第二个叫old number order number是什么?Order number,我们一般情况下,我们就是时间加上一个全球唯一嘛。这个其实比较简单了,同学们。
23:01
咱们现在开始。我的病。O的等于六欧的病。行,咱们先创建这个空的,然后一个一个赋值吧。old.set number。这个比较简单了,我就直接写了,叫UUID碟RUU id.to s。这就是个全球唯一码,32位的一个全球唯一码。再加上啊,再加上一个当前的这个时间戳是可以的。啊,加上大家的时间错。Date ma等于new date。好,我们快速的把这个写完。好,Data。SDF等于6SIMPLE data format。我们把它,我们把它这个格式化一下。
24:01
然后呢,他点。叫马。把我们闹,把它放进去。然后我们就得到一个string now ST。好,然后呢,我们再点split。我们用下划线用用减号分割啊,可以把它里面的值取出来,当然当然了,如果大家不需要搞这么复杂啊,老师这写的太复杂了,我们可以用一些过时的方法,但是可以用。可以用GET1是过时了啊,但是可以用,我们其实应该用Canada啊。咱们这边就先暂时不去扩展,要不然就太多了,我先用过时的方法,因为这个过时的方法,这个大家一看就一目了然啊。这个叫get date get date啊,不是get date,是get date。好get代数获取星期几啊。好,再来,然后now.get our。小时嘛。Hour。再来in minute等于now.get minute。好,虽然都是过时方法,但是可以用second等于now.get second。
25:03
全获取出来的,呃,获取出来之后,我们可以把它拼接起来,加上。将。Months。讲。Day加,Our加。Minute加second。好,这样就把它全部加上去了,加个下划线吧。你看一下我刚才数据库里面的值。前面是一串看不懂的,但是是唯一嘛。后面你看二零二幺幺零十月25号11:25:19能看到吗。啊,后面这是一个数字,当然老师你干嘛搞这么复杂的规则,你可以不这么写。你可以不要搞这么这么复杂,你就直接写个UUID也行。就保证订单号唯一嘛。啊,只不过这个订单号里面有一些特殊的一些数字,它能代表一些特定的含义吗?那行。这第一个搞定。第二个是date date就比较简单喽。
26:03
b.set date。那不记得把那放进去不就完了吗?是不是啊?饿的柚子怎么办呢?HTTP筛选。在想我想干嘛?三线点get attribute current user是不是能得到user?User等于user。然后old b.set。Or the user?是不是把柚子放进去?行获得money怎么办?All money应该怎么办?Old money不就是我们购物车的那个什么total money吗?Set all the money。它其实就是use.get cut.get total total money是不是不就是它吗?
27:04
还有个状态,状态比较简单,默认值给他一个零吧。我的病点set。零行吗,同学们?全部搞定。这样我就全部搞定了。最后一步。执行爱的方法。我的病。我写完了这个咱先忽略,先忽略不计,我们只要看执行这句话,它能不能执行成功。现在肯定是执行不成功的,这就是我刚刚刚才说的第二步,其实我们欠考虑第二步。稍等一下啊。我来找一下,先把它先关掉。全部关掉吧。找一下service。Order。Service。就是我们说的第二波是这波是欠考虑的。啊,没关系没关系啊,大家按照我的要求,咱们一步步来看到底是什么问题啊,先启动一下。
28:27
行,我们往下走啊,一起来看一下。大家不用不用害怕啊,我当前有事物存在,有事物在的话,只要我最后不提交,是不是,我前面即使音色的操作他也不会加进去是吧。登录进去。好,其他的全部关闭啊。来吧,咱们加一个吧。进入到购物车进来了吧。现在总共有27件商品啊,总共有这么多钱,我要点一下去结账呀。去结账,这案例还没写。现在好像还不行,我们配逻辑好像还没写是吧。
29:04
回到卡。这边是个叫去结账。去集上咱们写一下TH冒号,HF到了大括号,然后这玩意删掉。然后我们那边写的是呃。看一下啊,写的叫什么来着。是不的呀。Old的CTRL是不是加七个等于方法?行,回到这边。叫old do问候oper等于checkout是吧?没错吧,同学们就这样。对不对,就是这样,然后呢,我们说过,嗯,你这个超链接,超链接好像我们可以改成这个形式。是不是?对吧,同学们来忘记了吗?完了。点进去。Time timeni,这个虽然说不用死记硬背,但是你要慢慢要越写,越写越熟啊。我们应该是在表达式语法这个地方往下走。
30:03
一二摇你看啊,这1211个超链接,我们有一张图,稍等一下在这你看。At大括号,然后请求谁谁谁,然后小括号,K等于value key等于value是不是啊,哎,就是这样。哦,这边有个字符串,字符串用单引号把它引起来吗。那行吧,咱们也用单引号把它引起来。从这单引号切开行吗?同学们啊,把它引起来,OK,再来。再来。再继续。回到这儿,所以呢,我们再配种件配置一下。在这。那我们就先配一个ctrl b ID角O的。Class com.at硅谷点不点controller.all的controller。那all里面需要啥?这里面需要什么?
31:00
是不是他呀,行,配一个呗,需要他CTRLC。CT。需要他。对吧。那这玩意儿还没有呢,补一个呗,回到这。ID放进去class com.and硅谷点book.service.mp点。O的行,就是它那这玩意里面需要什么点进去哦,需要这三个是不是啊。需要这三个。靠过来。第一个叫O的DO3。Property name等于RF等于他没错吧?再来第二个CTRLC需要它property name等于它,REF等于它。大家能知道为啥考过来吗?这样我就不会写错了吗?啊,是不是。这样我就不会拼写写错了吗?删掉啊。请稍等。吹牛吹大了。是不是这样的,就需要这个,哎,没错吧。
32:01
那行,这两个还没有呗,所以他报错呗,补一个呗,是不是补一下不就完了吗。I,第一个,Or do you c。Word do class com.e book.do点安P点。O的do就是它再来。好,行,这个不报错了,再来趟。并ID item class com.a硅谷点book.do.mp点。Item,没错吧?哎呀,不容易啊,全补完了,现在开始测试启动一下。所以说大家要知道啊,我之前在做开发的时候,我是经历过维护这份配置文件的这个时代的。啊,所以这个以前项目很复杂的时候就写这玩意都写吐了。真的是这样的?
33:01
啊。第几行?38行。哦。是吧?应该是all的item。这个是吧。那我这边有两个。那应该是他可就C复制到这边来是吧,应该是这个。那我那我那我重启一下吧。大家大家得需要啊,再再再忍受这个配置文件的折磨啊,再再再忍受个嗯。八个啊,八个八个,咱们这个工作日。就八天之后啊,在配种文件,你就可以这个把它全部干掉了啊,全部不要了,我们后面一个阶段,我们在学框架的时候呢,啊,大家需要注意,我们学框架的时候是一个项目当中,我们框架是一个一个往上追加的。
34:04
我们很多同学在学习框架的时候,总是动不动就是三者集成。其实三个框架集成起来之后,就屏蔽掉很多的问题,如果这些问题你没有碰到过,那么其实你并不能够很好的去理解三个框架内部的运行机制。只有我们把三个框架一个一个往里面去加的时候,然后你会犯很多的错误,你需要把这些错误全部经历一遍,然后你才能对框架的运行机制能够理解的更深刻。最后一步,我们一个一个项目里面三个框架同时存在,但是三者不整合,但是三者不整合,你看你能不能把它跑起来,如果能够把它跑起来之后,你再去尝试着做整合,那就比较轻松了。啊,所以说所以说呢,大家不用害怕错误。啊,这个咱们学习的过程痛苦一点不是坏事。OK。行,咱们抓紧时间。回到页面上去。点一下登录。
35:00
咱们进来看一下啊,当前咱们再加一个。好,现在这个。28件商品了,刚才是27件是吧?行,我们断点应该在啊,我把这个断点在上。这是切糕的,咱们从这个设断点吧,一点点来看啊。去结账行进入到断点,进来了吧,往下走。嗯,怎么点到这里面去,再往下走。呃,一步一步来。停。看一下啊。我的笔打开。O的number是不是有值啊,有知道啊。Old date有值的吧,没问题,往下走,嗯,这老是这个,怎么格式不对,不管它。我们在程序里面是对的就行了啊往下走。有吗?User。
36:00
有了吧。User是有的,再往下走,Set all the user设置进去。好,再来看all the money,走走,好,咱们来看一下。All b打开all the user,有的all the money,有的all the status,有的都没问题吧,行,都可以。啊,这些都是没问题的,那当咱们当前这个all病里面的all item list没有。是吧,好像我们在添加的时候,我们是把它设置进去的,咱们进入到这个方法内部去点进去。进去。现在第一步准备要添加,那请问一下我们要往O的B所对应的那个表里面添加。有没有问题?我觉得应该是没有问题的,我们看一下我的这张表,一列、两列,三列,四列、五列应该都有值。是不是number date used money看一下。Number date used money this,是不是都一直啊?所以这步应该没问题,执行过去行,大家注意看,我执行完这一步,请大家看一下OLDB它的ID。
37:09
看到了吗?ID里面这个这个变量变成蓝颜色,表示上一步就是更新的这个变量表示上一步这个变量有更新,它就会变成蓝颜色,咱们刚才这个是没有值的。现在我们已经ins射成功了嘛,说明它是有值ID等于12行,注意往下看啊。要获取all list的all b.get all the item list,不对的吧?是吧,同学们。Old be里面有get old it list吗?没有吧?他没有诶。是吧?但没有人那。那怎么办呢?那我们old item从哪里获取呢?你说老师刚才我们不是看到那个购物车的那个详情页面吗?上面不就是一个一个的购购物项吗。
38:05
那我们把它做成表单,那就太麻烦了,同学们如果那么去考虑就太麻烦了,没必要。大家要记住一点,我们的每一个购物车项是不是在user里面都有存储?是不是?那请问一下,我们可不可以从卡item把一个一个的卡item,根据卡item的信息封装出一个一个的order item?我觉得应该是可以的。我们我再说一遍,我们应该是从user里面获取购物车,购物车里面有cut item,那你想一下,一个cut item其实不就对应一个order item吗?是吧,同学们,所以。我们这个地方第二步需要做一些小的改动。啊,需要做一些改动,现在大家应该能够明白,我到这步我暂停了,你看一下它里面是闹,所以我这步我一获取它肯定就是闹。
39:03
是不是同学们,那你既然是,那这个for会执行吗?那他不会执行的话,请问一下。All item表里面会添加七条记录吗?那肯定就不会嘛。是吧,同学们,然后最后的时候,这步他是假设这步他执行成功了,那也就意味着这个用户生成了一份订单。表示他在什么时间花了多少钱。但是具体他买了哪些东西不知道。而且你还把人家购物车里面信息删掉了,那就真的完蛋了,他钱花了,结果啥商品都没有。不就这意思吗?所以说这不有问题。O的item这步有问题,咱们需要来修改停掉了啊,我把它停掉。坚持一下啊,还有十分钟我们就结束。好。所以我们通过get all the item list这一步啊,呃,比较困难。啊,这不是比较困难的一件事情。
40:04
所以我们在这个地方我们来操作一下。通过。啊O的病中的。All the item list是空的。此处我们应该根据用户的购物车中的购物车项。去转换,转换成一个一个的订单项。所以。我们就把这玩意儿。剪切,注意看,我把这两行剪切了。我把它放到这。然后这个负循环,我要把它剪切过来,CTRLC不剪切就复制啊,复制过来放在这。我拿到每一个的cut item,我就要封装出一个一个的order item。所以。
41:00
All the item。Order item等于new order item。好。看一下我的item里面有哪些信息,点进去。把它放到右边去。啊,把它放到这儿,把它关掉。来。Item里面ID。不关心。All item.book怎么设置?怎么收拾同学们?不就从购物车获取吗?咔。点get book是不是?抗怎么获取?怎么获取,是不是我们卡item里面是不是有BY的呀。把它扔进去,我的病怎么办?上一步不就是O的B吗?是不是啊?
42:01
设置进去搞定,这样我一个old item我就封装好了,然后我们得执行一下。从这到这CTRLCCTRLC,那这玩意儿删删掉了啊,你就可以不要了啊,就可以不要了,我们封装出一个old item,我们就at进去,封装出一个我们就at进去。啊,这是没有问题的。啊,这个是可以的,虽然说你这个old item list这个属性里面的old item list还是没有被复制,但是没有关系。不要了。我们应该是这么去操作的。OK,这是第二步。再来第三步,我们就能很放心的去删除了,现在我们再来试一次。当然了,如果大家感觉到,感觉到这个all病里面啊,它的all item list是空的,你觉得很不爽。你可以在外面准备一个list,然后你这个for循环里面,你去一个个的去艾,最后除了for循环,你可以把它再设置进去,可以的吧,只不过其实设置就去已经没啥用了。
43:05
啊,你设置进去其实没啥用啊,没有什么后续咱们用不到它啊。行点一下加添那个登录啊,再来看一下啊,点击加入购物车,现在估计29了吧。对吧。行吧,试试吧啊。呃,这个为了咱保险起见。现在我看一看啊。这样同学们先稍等一下啊,我来想一想,我已经执行到这了是吧,这个数据有点多了啊。那行吧,就硬着头皮执行一下吧啊。29。数据太多了。去结账。这样啊,后退。看到item右键。阶段表,我把这里面数据全清掉。阶段表叫turn cat。开的就是清空这张表。
44:00
而且把他的ID重新设置为归位,从一开始。吞盖应该知道吧。同盖的进攻一下啊。刷一下。没了吧?哦,这是订单吗?全部清掉,清空清空清空。更多表操作阶段。哎,是不是有外键引用啊。回到这里面来。阶段。是。刷新一下。好,子表没有了,再删主表。阶段。还有啊。这里面还有引用啊。这里面应应该没有了呀。不是已经刷新了吗?二表里面还有什么会引用它呢?应该没有嘞。应该没有了啊,柚子这个肯定不需要管的。咔嚓一等,清掉了。Word item也清掉了,Word表应该没有问题,重新再来一次。阶段表。
45:01
看你是哪里。All item里面有外键引用它,这好奇怪。的艾特,魔都已经清空了。刷一下。把这边也刷一下。然后再来阶段。真是的,清空。清空。真讨厌删除。刷一下。重新再结论一次,再次截断。还不行,这好奇怪。不行就不行吗?无所谓,反正数据文件全清掉了行吗?大不了他的ID不从一开始嘛。行不行同学们无所谓了啊,我现在已经把数据清的干干净净的了,三张表看好了啊,现在咱们大家应该没没问题啊,行,再来。
46:03
咱们回去重新登录登录。购物车零对的吧,没问题,加一分。是不是有一本啊。后退再加一本,是不是两本啊?行,再加第一本。是不是变成二对的啊,现在同学们我请问我点去结账。请问我点去结账的时候,是不是我的O的表应该新增一条记录?请问我的O的item表要新增几条记录?两条吧,大家这个回答三条,让我心拔凉拔凉的啊,不是两条吗?我有两个O的item吗?如果你回答三条,那就是没有理解啊。请问一下cut购物车cut的item那张表要删除几条记录?也是两条吧。对不对啊,也是两条,哎,不就两条数据吗?第一条数据购物车的数量是二,第二条数据购物车的数量是一。
47:03
是吧,同学们行点去点点击一下去结账。看一下啊。往下走,咱们再来走一遍。咱妈一直把断点跑到这个地方来,所以这个断点不要直接跳过去,跳到这边来。行,准备进入到这个方法进去。好,第一步。好,执行过去了,我们看一下啊,获得BID是13,因为咱们干的是12嘛,现在是13没错。往下走,看到了柚子了。往下往下,那请问一下这个负循环是不是要循环两次啊。行,进来吧。Old item。一个setb by count all病行准备要执行它,我们看一下。All item打开ID没有值无所谓,不亏就值。By count有值old的BOLD的病里面是不是ID也有值啊,那行,这个应该是可以的,直行没问题,负循环还有一次直行直行直行直行直行好,那这个复权应该就跳过去了,没错吧。
48:07
第二步搞定,现在我是不是已经完成了,往订单表插入数据,往订单详情里面插入数据,现在我要经过第三步把购物车里面两项删掉。是不是这意思啊,我们现在可以看一下数据库,我们购物车表里面是有数据的。是不是有两条数据订单和old的item,是不是这两个都没有啊,因为咱还没加进去呢,行,下面我们做的事情就是订单表,一条数据all item,两条数据cut item删两条数据,是不是这样的?行。往下走,执行delete。好,我们看一下啊,看一下这个卡item。再执行一个啊,看大家怎么再往下走。在的for循环,再进来看一下卡。应该是二号了,没错,对的,直行过去,然后跳过去。那我们就执行完了,他这边也没有报错。所以我们回到数据库看一眼。
49:02
我们看item刷新一下。没了吧?看一下订单表,有一条数据吧。再看一下啊,Old item2条数据吧,那就对了。那这就是我们的结账功能啊,这样我们就把这个结账功能咱们就做完了。好,当然咱们这边是index。咱们就回到首页上来了,这个地方没刷新是不是同学们?哎,对吧,这边咱们没刷新啊,不管它,咱们再点加入购物车,请问我再点加入购物车。会显示几条数据?应该是一条吧。点一下。是不是就只有一个,那是不是意味着咱们购物车里面又多了一条数据?是不是啊?哎,没问题。这样咱们不就完成了结账功能吗?
我来说两句