00:02
那我们先设置一个场景,再说事物的问题啊,看到我这里,我现在呢,一共有三条数据,ID为一的是Tom 1id为三的Tom 3id为四的Tom是Jack,好了啊这样。嗯,我就针对了他去做一下吧。他做一下,我现在要做两个事情。第一个将ad为一的这条记录啊,它的这一条记录,它的A级呢,改成比如说改成13吧。嗯,把他的要不这样把他的那个那个了,把ID为三的这个A改成15,这可以吧。嗯。其他的都不动,大家想啊,我们该怎么去做呢?我是要执行两条这个鱼。
01:01
啊好,我们写一下,把这个事情我们把它做了啊,先别管什么事误啊,我们先去做,刚才这个事就是要执行两遍,就是有两个update,我写一下啊,把这个语写一下,Update person set age。等于多少来着,一个是13多少条件下划线ID等于。Yeah。等于一是吧,这是一个吧,啊还有一个update某一个表set age等于15,我下划线ID等于三,没有二对吧?好,现在我们要去写是写更新吧,跟上面的这一个应该差不多,对不对。嗯,把它拿过来。嗯,大家看啊。来这一次呢,我们要去执行更新,只是两次来一个,一次一次做没关系啊,我们来看一下,把这个往下拉啊先呢,我们要执行第一次更新就执行它。
02:11
看看怎么做啊,这个地方要变化的就是A等于13 ID等于。是这样的吗?IZ1,那我是不是还又要做呀,还要做一次,这一次呢,接着再去执行一下。这一次只是数据改一下五这个呢三好了,这一次就相对来说比较简单一点了。这一次改成五对吧。好,呃,我们这一个这一个是阿丁阿吧,嗯,好呀,好了,把这些把这些去掉,嗯。看看啊好,这个地方需要改的就是。
03:05
哎,三是吧,写错了三没解吧,嗯,我们可以把这里面的这些东西呢,给它输出一下的是可以。嗯嗯,把它们先去掉吧,等于加上一个它。好,下面再来一个。好了吧,嗯,这样如果我们现在现在执行,先看一下行不行啊,先看一下,这样我能不能去同时一次执行两条这个语句啊,在一个功能里面。
04:02
先看下我们数据是是在哪啊,别把数据搞混了,嗯,再查一遍,确保一下好看这里面的数据。现在我点一下它点下之后是不是都有更新呢?嗯,都有更新,现在看一下数据有没有变化走。变了吗?变了,是不是都变了呀?哎,此时此刻,我的数据还能回去吗?我在这里面,这个13还能回到11,这个15还还能回到13吗?不能是吧,好,这里面就要说一个问题了。啊,有的时候呢,会出这样一种问题啊,现在我们得改改了,把数据都都适当的增大一点,它要变成15,它要变成17。啊。十五十五啊17。17。嗯,啊,这个能看懂吧,大家看啊。
05:04
现在我们就在中间出一种小问题,什么意思呢?就它执行是不是也要一定的时间呢?啊,这个执行中间出了异常。啊,怎么样,模拟出了异常呢?是可以抛啊,先来一个布类型,你不能直接抛,直接抛下面就没法执行了,Flag,我是吧,If flag a two,那我就抛对吧,十物你用一个runtime exception。可以吧,啊,出问题了,出一场的吧,好来。那现在的问题就是,如果我这里面出了异常,大家看我这整个是一个完整的操作吧,是一个整体操作,应该做到一个什么样的目标啊。
06:09
有一个有一个事情叫什么。就一个完整的功能,它被数据库表操作,要就跟成功,要就什么都失败啊,就是一个功能中对。数据库进行的多个操作啊,要就都成功,药酒都失败。这个应该可以理解的吧,嗯,那而我们现在。的情况会不会是这样呢?我们来看一下啊,大家看呢,我现在要把它变成15和17,而我们现在的A值了是一个啊13和15,好,我们现在准备去运行一下。
07:17
先来看一看啊走,现在我要去点他吧。会出说界面效果,会出现什么效果。应该出问题吧,是吧,好,出问题什么问题了,我们来看一下。啊,找到扩BY说什么是抛了一个运行11常啊啊,这样能看出来是不是我的147行啊嗯,好看一下数据。是不是有一条数据改了,但另外一条数据没有改呀,没有改的原因是不是他没有执行呢?因为我这里抛异常了嘛,那你下面就不可能执行了,对不对。
08:01
那现在就违背了我们的这样一个原则。就一个功能中的多个操作要就都成功就都失败,现在应该是不是都失败呀,啊,刚才已经给大家演示了,都成功是没问题的。关键是都失败。嗯,这个时候就要用到我们数据库事物了,其实它本身呢,已经有啊,每一个操作都是有事物的,只是现在的失误是什么,自动提交的。你说一旦这个语句一执行,他就提交了。提交以后还能回本吗?不能回滚了。对吧,那我们怎么样来去实现中的一个数据库的事物的一个处理呢?先看一下这里面的几个方法,我们看着这个方法做。这里面分为几步啊。开启事误,设置事误成功和什么呢?解示失误,我们把这个给大家写一下来啊,就事物处理的几步啊,写在这里先三步,第一步啊,获得连接后来看啊,就开启数写一个吧。
09:26
开启事物,那在什么时候开启事物了?你要知道他什么时候开启失误。啊,事物的物质写错了对吧?嗯,在连接获取连接后好搞定了吧,第二个。在啊正常啊,全部正常在全部正常执行完。
10:02
后要做一个事情叫什么,设置事物什么呢,成功。嗯,时机是他还有一个叫结束事务,他就三步,那在什么时候结束事物呢。无论你是成功还是失败,是不是都要结束啊?那我得在哪结束?你结束,无论是你出异常了还是没有出异常都得结束,对掰了你是不是他呀中去做。你用finally是不是保证都能执行呢?好了,来做吧,第一步干他。
11:02
叫database点。看三,嗯,开启15。好,再拿去解释,请设置失误成功来看一下,在这里面全部成功。失败执行,他那以后就全部成功了吧,啊,你别再那个关闭以后再去等对吧,这这个你要关闭了,还还整整个啥呀,在这里面来写一下怎么着。Database set。Transaction successful。对吧,好了下面。第三步。结束事物中结束说在fire里面,那我这个地方要整一个什么,是不是TRY呀?TRY怎么个TRY法?来TRY一下,先TRY下了吧。
12:09
把这个里面的代码是不是套进去啊,哪一个等会需要改的我再改啊,拜了你啊,就是我们的第三步了是吧。好,结束事物,那我们是不是也需要那个database,它有吗?没有,没有,是不是因为我们的这个定义是放在什么TRY里面的,可放在什么TRY的外面?是吧,放在圈的外面呢,最好是能够去判断一下它不等于空才行吗?If,如果它不等于那。来,我来去干嘛啦,结束事怎么说?结束叫end,是叫end吗?是不是它呀?嗯,能看到吧,其实这个关闭是不是也可以放里面,能看到吧,关闭也可以放在这里面嘛,关闭连接嗯就搞定了,主要是这样的纱布。
13:20
啊啊,那异常你也可以处理一下啊,异常倒是也可以处理的,你要处理异常可以在这里面加一个什么开嘛,开一个三。啊呢,你可以把这个把这个给它打印一下,1.printsta给做一个提示。说一个什么事呢,出异常了,就这样啊,简单的等一下。
14:09
好来,我们现在呢,把数据,把数据得正常的改改看看,现在先看看数据啊,先看数据,现在呢,两个都15对吧,那我这样我一个改为16,一个改为17啊也就是说我这个呢改为16,这个改为17可以吧,来那也就是说改改数据啊,这一个是16。啊,16。这了吧,别的没有了吧,别的还正常的,没问题来。先给他跑起来。看这这数据你再查一遍,嗯,两个15来试试走。
15:02
测试。出异常了是吧,来看一下现在如果是正常的话,应该是什么,是不是都是15吧,啊都应该15来试试啊走你。是不是都是15万,这就正常的情况吗?就都失败了。这里所说的我们在。里面的一个基本的一个数据库的事物处理,嗯。
我来说两句