00:00
各位,刚才呢,我们搭建的事务操作的银行转账的环境,并且我们最终测试效果也可以正常执行,但是各位可以想一下这么一个问题啊,你发现啊,就是我们刚才写的代码中,大家说我们目前的代码会产生什么样的问题呢?各位可以考虑一下,你说会有什么问题?给各位强调啊,就是我们刚才的代码,如果说啊,我们正常执行,那肯定是没有问题的,那我写一下就是里边的第四句话给大家描述。就是我们啊上面这个。银行转账的这个代码。如果说我们正常直行。他肯定是没有问题的。它是没有任何问题的,但是呢,大家注意,如果说啊上面的代码。
01:03
在执行过程中。它出现了异常,那这个时候这代码肯定又会产生这些问题,那是问题给各位我来演示一下啊,咱们来说一下这问题所在,大家看刚才代码,咱们在DO5里边两个方法,一个少钱一个多钱,然后在servicewi中调,这方法就是一个少钱一个多钱,沟成咱的转账这么运行肯定没有错,但是比如说现在我这里边有异常,这么异常的举个例子,比如现在。Lucy在他转账的过程中,这个时候呢,比如说突然断电了,或者说突然断网了,但是Lucy这个钱比如说已经少了,那这个时候麦钱是不是可能不会多,所以里边会产生一些问题,产生一些就是意想不到问题,那问题呢,给各位模拟一个异常,比如现在我来。模拟一个异常,用一个最简的方式,假如现在让那个除以零,是不是有异常,那现在咱们看啊,我现在当Lucy少了100之后,突然有了异常,那麦它里边咱看会有什么样效果,咱就模拟这个异常,那我现在把这个先都还原,还这成这个1000。
02:22
还回去啊,都是1000。现在我把这代码,比如说我再做个执行,咱们看目前会有什么样效果。咱们执行一下啊,大家看一下。现在我一执行,然后里边肯定有异常,就是那个零不能做除数,然后咱看表中的数据变化,大家应该看到问题了,什么问题啊,Lucy前。是不是少了,但是麦钱呢,没有多,这钱哪去了,是不是就丢了,就没了,所以这肯定是不对的,而按照我们的操作中,Lucy少完之后,Mary应该是多,如果说你Lucy它里面少之后,麦瑞不会多,那Lucy应该也不会少,这样的话啊,目前的效果肯定就不对了,所以这一次我们演出了这么一个基本问题。
03:10
我把这个给各位截过来。就是咱们目前的一个问题所在。这么一个说明。在你代码运行过程中,如果出现了异常,那这里边肯定会产生这个问题,这个啊咱做个说明,那这个问题咱们现在出现了,那大家考虑一下这问题咱该怎么去解决呢?就是上面的问题该如何解决呢?那就说怎么做,我强调啊,这个解决方案就要用到咱们现在讲的内容了,咱怎么做,我们就需要使用什么事物。进行。解决那事物咱说过么叫事物逻辑上一组操作要么都成功,一个失败,所有什么都失败,就是现在比如说Lucy少了100块钱,有异常了,那麦不会多,Lucy应该也不会少,这就是事物的一个场景,所以咱们现在把这个事物的概念通过这个例子给各位就引出来了,咱们现在这个问题用事物就可以进行一个解决,那怎么解决给各位啊,把这过程先做个说明。
04:25
怎么说明,给大家写一下事物里面这个就是操作的一个。基本过程就是咱要做事物,这过程应该怎么做,给各位啊,把过程说一下,咱们一会儿要通过死认把这事物给它配置出来,那我说一下这个做法啊。首先大家看我们在里边有这个调用的过程,那在事务操作中怎么做,首先第一步。咱要做件事情。做什么事情,就是开启我们的事务操作,这是第一步,你需要开启,然后开启事物之后,咱下面里边的第二步,就是咱们刚才写的啊,第二步我们要进行我们的就是业务上的操作,就是咱们做银行转账肯定要做这个过程,但是做这过程中这位置是不是有异常了得有异常的话咱怎么做,咱需要把这异常做一个补货,那怎么补货,这位置我可以加上一个catch这么一个处理啊,那各位写一下,比如现在这里边我加上一个TRY这么一个结构。
05:34
然后这个catch里边,比如符合它的exception,咱们把这个代码写到我们的try catch里边来,我就说一下这个结构啊,按照我刚才说的第一步。开启事务第二步,进行你的业务操作,这个过程中如果说没有异常,那我们进入到我们的第三步。啊,第三步就是如果说你没有发生异常,那怎么做,注意咱事物是不是开启,那事物开启之后最终是不是要提交啊,咱做一个事物提交,这是里边的没有异常情况,但是现在如果说出现了异常,是不是到我们的catchche里边啊,所以这是我们的,咱可以说是。
06:17
第四步,如果说他出现了异常,那该怎么做?在事物中咱要做件事情,它叫做事物的一个。回滚,注意这个词,什么叫回滚,就回到你操作之前的状态,比如现在Lucy少了100,我回滚之后Lucy这个钱就不会少,所以这是事物操作这么一个基本的过程,各位把这个过程给他知道,然后把这个给各位。截个图,把里面这个核心部分给各位都标注一下。第一步。开启事务,第二步进行业务操作,然后第三步没有异常,咱要提交事务,如果有异常,咱把这个事务要做一个回滚,这是一个基本的过程。
07:05
所以咱们现在就是引出了咱们事物的这么一个概念,各位把这知道,包括通过咱们这个银行转账例子,各位知道他目前有什么问题,包括问题怎么解决,以及解决这个事物按照什么流程把这做到这个啊,我们就说出来了,然后这事物我强调,刚才我说这过程是咱们一个代码的一个基本流程,就是咱通过代码可以实现出来,但是因为咱们现在用的是此文框架,而在此文中咱可以用更方便的方式来实现事物操作,那咱们马上就来讲解此文这里边如何进行事物的这个操作,咱们现在是把这个环境,包括事物这个场景给各位引出来了。
我来说两句