00:00
好,接下来呢,我们就为这个方法来添加上事物,我们希望添加上事物以后呢,只要这个映色的方法在任何一步出现问题,那么呢,以前所有的操作我们都整体回复,要填来数那么一个非常熟悉的注解叫transitional啊,我们只需要来填这么一个注解来告诉spring,这个方法呢,它是一个事物方法,这样spring在执行这个方法的时候,就会自动的进行失误控制,如果说整个方法正常执行,那就所有的操作都生效提交,如果说方法期间出现异常,所有的操作都回滚,这是我们啊用的一个注解,好,我们可以先来说一下,给咱们这个方法上,我们可以标注这个传塞呢,表示当前方法是一个事物方法,哎,这跟我们之前的用法都是。
01:00
一样的行,那么呢,我们把它标上以后,我来看一看,是不是就能直接变成咱们这个事物方法呢?来测试一下,测试之前呢,先来看数据库,数据库呢,目前有两条记录,如果说这个方法变成了事物方法,那就是它插入后边会出现问题,出现问题插入就回滚,数据库里边就不会有新的记录,我们可以来看一看走好出现数学异常,我们来看数据库走,但是呢,我们发现数据库里边插入了新的记录,说明我们这个事物没加上,也就是说光加一个喘塞肾脑是不行的,如果是我们以前基于配置的,我们可能还配过什么事务管理器,还配过什么啊,最重要的一个就是呢,我们会在配置文件中,我们以前可能会写一个。
02:00
我们先来导入这个X名称空间,然后呢会写一个叫TX not,诶,Not,然后呢,开启基于注解的咱们这个事物支持来注解驱动,所以说呢,我们这些功能我们都还得做,那么我们先来看要开启真正的注解版的这个事物怎么办呢?上面这个需要有他来支持谁呢?叫an a来trans management来开启咱们这个事务管理功能,它就是开启开启基于注解的事务管理功能,那么呢,这个事务管理功能我们就开启了,这个和我们之前学的那个切面都一样,他们的设计模式都是A叉叉叉,就是来开启某一个功能,那么这个功。
03:00
开启以后我们再来测试,数据库呢,现在是三条记录好,我们再来测试,看行不行,走来测试,如果一切正常,它应该回滚,我们来刷新,哎,看起来这是三条记录,但是注意啊,这这个异常我们看着好像有点不对,它这个异常呢,报的是no such being DeFinition,也就说呢,没有一个being定义,没有哪个being定义呢,他说找不到一个叫platform trans manager,也就说我们还没配事物管理器,这个事物管理器也是我们需要配的,说最关键还是要配置事物管理器来管理事务,事务管理器来控制事,那么这个事物管理器怎么做呢?我们以前在插配置文件中,我们会配data source trans manager之类的,他们都是这个。
04:00
Trans manager就是这个,而我们在这报错也报的是没有找到manager,也就说基于平台的事务管理器,而这个事务管理器呢,有非常多,我们像我们这些JCBC,包括等等整合要进行事控制都用这个manager,如果我们当时导了orm,还有GPA相关的manager,所以说呢,我们就用这个data source,用我们自己平台的manager就行,好,我们呢,给他返回一个plant for trans manager trans manager,那么呢,我们把我们的这个事物管理器用一个data source trans manager,我们把它展回出去,只不过注意这事务管理器呢,有一个特别重要的地方,就是它要管理这个数据。
05:00
源事务管理器呢,一定要把数据源控住,这样的话呢,它才能控住数据源里的每一条连接,那么连接的这些回滚啦,以及事物的开启了,都由咱们这个事物管理器来做,那么接下来我们就来把这个数据源我们给它放进来,好把这个异常抛出去,我们一定要把这个事物管理器注册在注册事务管理器在容器中,那么呢,我们接下来再来看是不是能填上事物方法呢?来我们来测试,现在呢,先来看数据库的记录,现在呢,有三条走这块呢,报的是插入完成,但是呢,我们这抛的是数学运算异常,哎,这是一个数学运算异常,那如果加上了15,我们来看一看啊,如果说加上了15,那就应该。
06:00
回滚,回滚的话呢,数据库原来有三条,那么应该还有三条,不应该多插入一条记录,我来刷新,诶还是有三条说明加上15了,那我们不信的话呢,我们可以把这个注解我来做掉,做掉以后呢,他就没加15了,没加15我们来测试走,我们发现报道还是数学运算异常,没加事物不能回滚,那数据库就会多一条新记录,我们来刷新,哎,我们发现数据库确实有新记录,所以说呢,这就哎事物的添加就这么三步重要配置,第一步相当于开启咱们这个是事物管理功能,这是第一步,第二步呢,把我们的这个喘塞势能注解标在我们想要标的这些方法上,那就行了,关键呢,还有一个最重要的一步,一定要把这个事物管理器加在容器中,说。
07:00
我们必须有这个方法,必须有这一步,要不然的话,我们事务管理器不能工作,事务就不能进行控制,那么下一节课呢,我们可以简单的来分析一下,为什么这个注解就能进行事物控制了呢?
我来说两句