ssm:spring事务管理—–通过注解实现事务管理

涉及知识点:没有事务管理的情况分析 1.对上一个没有事务管理的项目进行优化 目标是把类AlipayDaoImp…

涉及知识点:没有事务管理的情况分析

1.对上一个没有事务管理的项目进行优化
目标是把类AlipayDaoImpl里的整个transfer()方法作为事务管理,这样transfer()里的所有操作都纳入同一个事务,从而使transfer()里的所有操作要么一起成功,要么一起失败。

2.优化流程
i.在applicationContext.xml中配置事务注解驱动

ii.在类或方法上使用@Transcational注解,即可实现事务管理,@Transcational注解若用在方法上,只能用在public方法上。

3.@Transcational注解有下面这些属性(可选)
propagation:用于设置事务传播的属性
isolation:用于设置事务1的隔离级别
readOnly:用于设置该方法对数据库的操作是否可读
timeout:用于设置本操作与数据库连接的超时时限
rollbackFor:用于指定需要回滚的异常类
rollbackForClassName:用于指定需要回滚的异常类的类名
noRollbackFor:用于指定不需要回滚的异常类
noRollbackForClassName:用于指定不需要回滚的异常类的类名

应用实例:模拟银行转账(添加事务管理),小黑,小白原本各有账户余额3000元,小黑转账1000元给小白,但转账过程中出现了异常

项目目录结构图
在这里插入图片描述

需要用到的数据库与数据表

数据表图
在这里插入图片描述
applicationContext.xml

IAlipayDao.java

AlipayDaoImpl.java

Test.java

运行结果图
在这里插入图片描述

转账前的数据库
在这里插入图片描述

转账后的数据库
在这里插入图片描述

测试时发现尽管转账中间发生了异常,但小黑与小白的钱并没有变化,保持了一致性,这样就达到了目的,证明了tranfer方法中的两个操作都纳入了同一个事务。发生异常时,事务回滚,保证了数据的一致性。

本文来自网络,不代表软粉网立场,转载请注明出处:https://www.rfff.net/p/8285.html

作者: HUI

发表评论

您的电子邮箱地址不会被公开。

返回顶部