当前位置: 首页 > 网络应用技术

一些春季事务的理论和实践

时间:2023-03-06 20:45:47 网络应用技术

  其他四个隔离水平对应于数据库的四个隔离

  1.创建春季项目

  新的春季初始化项目

  配置pom.xml文件

  创建一个实体软件包并创建与数据库表相对应的物理类

  创建一个DAO软件包并创建数据库表的类的界面

  创建一个异常软件包,自定义异常类

  创建一个服务包来定义服务界面

  在服务软件包下创建IMPH包以实现ISPringTransaction接口

  创建一个正在测试的新测试类

  总体项目结构如图所示:

  2.创建一个测试数据库

  相应的应用程序.yml

  在执行之前,表中没有记录

  执行方法

  它没有回滚,数据插入了成功

  清除数据库,然后继续下一个

  在这里,Rumtime Exception被强行转化为Customexception,这不是未经选中的

  执行方法

  没有回滚,成功插入

  清除数据库,然后继续下一个

  执行方法

  RuntimeException是不合时件,回滚,数据未成功插入

  执行方法

  参数回滚指定Customexception异常类型,并抛出此异常,交易是滚动,数据插入失败

  运行方法

  抛出例外

  由于字段名称要求不是空的,请运行错误

  在此方法中,可以在OneSaveMethod()上获得标记为事务的方法。多个交易集成到一个交易中。只有通过正确的执行才能提交交易。由于操作的误差,交易被标记为仅回滚,从而导致交易的回滚。数据回滚。插入故障。

  可以看出,交易未回滚,数据已成功插入

  手术期间抛出的异常

  可以从异常投掷中看到。首先,我们得到的是一个代理对象,调用非债务计算方法。但是,当调用eletherOneSaveMethod时,非债务cannotrollback方法是另一个soseonesavemethod的原始对象。不过是回滚。

  可以看出,由于异常是UNCHECK类型,因此交易已撤回,并且数据尚未成功插入。

  从抛出的异常中可以看出。首先,我们得到的是代理对象,然后称之为另一索诺夫人。因此,存在事务问题,即事务不会失败。