00:00
各位同学大家好,刚才呢,我们把要完成案例的相关的类完成创建,分别创建了controller service,还有DA,那下面呢,我们在里边完成调用,把它的功能进行实现,那咱们开始做一下啊,首先一部分咱们刚才在配置文件中加了一句话,就是开启组件扫描,基于注解方式进行操作,所以首先第一部分咱把这些对象先创建,我们在类上边分别加上注解,第一个加上一个controller创建对象。然后在service实验上加个注解,叫在do里加上一个注解,我们用这个叫re,所以现在把这对象我们都完成创建,然后完成创建之后CTR里边呢,咱干什么?是不是要注入service,那咱们做个注入private book service把这个进行注入,然后注入之后service里边要注入DA,那咱们完成。
01:06
Book DAO进行注入,注入之后咱们实验功能,首先在CTRL里边我们给它加上一个,就是买书的方法,咱们叫拜。Book,然后在里边呢,给他传入就是这么两个参数,第一个参数咱就传一个图书ID,第二个参数传个用户ID,就是用户要买某一本书。这个过程中大家注意啊,因为咱们ID的类型,当然咱们创建应该都是int类型,最后在里边进行传递,我写下啊买书的方法,咱们传递。图书的ID,还有用户的ID,把2ID传进去,那我来传一下啊,第一个加上一个叫in。咱们加上一个叫book ID,再来一个in,加上一个叫user ID,就是用户ID,把2ID点进去,然后加完之后咱们调用service中的方法进行实现。
02:15
我来调一下啊,Book service里边咱们加上一个就是买书的方法,我们叫by book,然后传入ID,图书ID,还有用户ID,这是我们写的这部分,然后咱们下面在service里边把这方法给它创建出来。在里边创建就是买书的方法,然后创建之后在service中,最终我们进行实现。这是我们写的一个结构。然后这个过程中各位应该清楚啊,咱们说这个service层是不是又叫业务逻辑层,DAO层,我们叫数据访问层,就是真正操作数据库的,所以咱们在service里边要写上咱的业务的过程,在do层中就专门操作数据库,所以咱在这里边写一下买书的一个基本过程,当然我这里边写的只一个简单的模拟过程,实际中有很多需要考虑的地方,咱重点演示事物,所以咱们只是简单做个模拟。
03:20
那我写一个基本流程啊,首先第一部分咱们先根据里边这个图书的ID查询图书的价格,这是第一部分,然后第二部分咱们进行买书嘛,买书的话,首先我们要去更新你那个图书表里边的库存量,就是把库存量要减一,然后库存量变成减一之后,咱们要去怎么样更新用户表里边的用户的余额。这个我们要进行操作,把用户余额就是减成你那个查询出来的图书的价格,比如我图书50块钱,那咱就减50,所以现在里边要做三个部分啊,咱就模拟一个场景,当然里边有很多细节,咱关注核心部分啊,细节我们就不再关注了,因为它重点演示事物。
04:14
然后第一部分我们先根据ID查询,那怎么做呢?咱们提到在do层,它是专门操作数据库的,所以在do层里边我们就建三个方法,分别做这个三个事情,模拟出这个买书的过程,那我写一下啊,我们用book DAO部分根据ID先查这个图书,咱们叫book。里边这个price就查图书的价格。根据这个图书的ID啊,就是不可ID。这是我们写的这个方法,然后在里边传入。出ID,最终返回那个图书的价格,这个价格呢,我们看一下啊,我这里边为了方便,我就写int类型了啊,咱就来一个int。
05:05
加上它的包装类啊,Price这是第一部分。这些方法一会儿创建啊,然后第二个我们调DA中的方法去。减你的库存,把库存量减一,咱们加上update这个或者storage。里边啊,给他减库存,就是减我这个图书的库存,然后最后一个去更新用户表中的用户余额,用book Du里面的方法,我们叫update user这个。Balance。就是余额,然后根据这个用户ID更新,加上你更新就是减的那个图书的价格,把这个我们也串进去,所以现在啊,这个我们就完成了思维中的部分业务逻辑层,先查图出价格,然后减库存,再更新余额,这个单完成,完成之后在第五里边把三个方法创建,第一个方法根据ID查询的方法。
06:14
我们写到这里,然后第二个方法就是减库存的方法。在里边我们创建这个方法。第三个方法就是更新用户余额,或者说减余额的这个方法,比如你输50块钱,那余额肯定要减50,这是咱们写到的啊,然后最后在实现类中把三个方法我们最终进行实现,就是用咱们刚说那个JDBC,我们做最后的实。那咱把这个给他最终完成出来啊。咱们写一下。首先第一个啊,咱先把那个JDBC给它先注入进来,因为咱们刚才在配置文件应该都置了,那我们看一下啊,就是这个部分。
07:02
是不是都配置过了指定数据源信息,包括这个六一连接池都有,所以咱直接给它注入进来,然后注入之后我们开始写里边的三个方法。第一个方法。根据图书ID查询图书的价格,第二个方法去更新你的库存,就是库存减一。第三个方法,更新用户余额减图书的价格,这是我们写的三个部分,然后咱们写一下啊,下面我们先写第一个方法,按照咱们刚讲过的,首先我写上一个circle语句。写到这个位置,然后在里边加上。因为我就那个图的价格啊,就个price,然后我们看一下啊,我这图书表应该叫T小book,用户表叫T小user,然后在里边根据图书ID进行操作,然后我们再加上一个where。
08:08
Book ID等于你的值,然后咱们调方法,JDBC中的方法叫query for object,传入circle语句,加上类型的class。最后加上参数就是不盖地。返回的是个int类型,这是咱们说这个价格,然后咱们把这价格最终做个就可以了,这是咱们写的第一个方法,根据图书ID得到价格,然后咱们按照同样方式快速写第二个,第三个,第二个是更新库存,第一部分还是解语句。我把语句啊,咱们快速写一下。这位置我们加上这个。Update表名称。然后加上一个。
09:01
啊,这个位置啊,加上S。更新库存,咱们看一下啊,库存叫stock stock。这个库存。等于库存量是不是要减?一根据图书ID进行减库存,然后最后调方法,做一个更新,调RV的方法,传circle语句,传图出ID。这是我们写的第二部分更新库存,然后最后一个就是更新用户余额,咱们写一下啊,加上。Circle语句,然后加上update,这个应该是优色表啊,Site,你的那个余额,咱们看一下余额的字段是什么,看到这里边是不是叫balance啊,余额就是它里边不能为负值啊余额。然后等于这个balance减上图书的价格,根据用户ID进行修改。
10:04
用ID应该是叫user ID这个啊跟它应该一致,然后最后我们调方法更新就可以了,Update传传参数第一个参数。第二个参数,用快递。所以大家看啊,现在咱就把这个案例给他快速完成了,咱就模拟出一个买书的一个过程,这个咱们就讲到这里,然后咱再看一遍啊,最后咱们先不加事物,先做个测试,然后咱们演出里面一些问题,最终再加上事物。那我们来看一下啊,第一部分CTRL里边我们创建对象注入service,然后传入图书和用快递调service的方法进行买书,在service里边同样创建对象注入DAO,在里边有三个调用的过程,第一个根据图出ID查价格,第二个更新库存,就是减一,第三个更新用户余额,就是减你的图书的价格。
11:08
最后在do里边,我们同样减对象三个方法,第一个查图书价格,第二个库存量减一,第三个用户余额减图书的价格,所以现在这个案例的过程我们就完成了。那完成之后呢,下面呢,我们做一个测试,试一下这个效果,那我们来测试一下啊,我在里边呢,加上这么一个测试类,我们给它加上我们就叫这个。Book tx15,然后用three整合j unit方式进行实现,加上three unit con,然后加上一个叫locations,加上这个class pass,然后加上配置文件,我们的配置文件叫B,点这个就可以了,然后可以之后在里边怎么做,咱就直接把那个CR给它,就进来CTR。
12:12
然后最后写方法进行测试啊,咱们来试一下啊public,比如这个我们就叫test这个。摆不考啊,就是买书不考。然后在里边测试啊book ctrl里边的方法,咱们传入两个参数,第一个图书ID,第二个用户ID,比如我现在啊,我想买就是这本书,咱先看一下数据啊,我这本书里边咱就买这个。ID是一的,习近平谈治国理政,咱就买这本书,那这个值,我就传个一。然后这本书大家看啊,比如现在我的用户就这个一日用户咱没加那么多啊,就来个一表示Lucy想买ID10这本书,如果说大家这啊,如果说该么图表里库量是200,应该变成是不是减1199,然后用户的余额这500块钱是不是要减100,你的价格是100,所以这两只要一个变化,那咱看一下是否正确啊,咱们现在把它执行下。
13:26
试一下这个过程,目前是演示正确的效果。等他执行大家看啊,没有报错,因为我没有做输出啊,咱直接看表中变化,先看图书表里边习近平谈治国理政,大家看是不是199,再看用户表里边这位置变成是不是400,之前咱是500,证明他余额是不是有变化,所以现在啊,咱们就把这个例子就完成了,这是我们特别演出的一个过程啊,所以大家知道我们要做这个事情。
我来说两句