SSM-Project-Day07 AOP事务回滚
2019-04-04 00:44
120 查看
一、在ServiceImpl里添加-添加错误,发现及时添加失败,数据仍然显示在了数据库中。由此,应当使用事务回滚,添加失败不进行后续操作。
// 假设要rows=1时 提示保存失败了 事务回滚不执行保存操作 if(rows==1){ throw new ServiceException("save error!"); }
二、在dispatcher-servlet.xml里配置spring声明式事务管理
<!--配置spring声明式 事务管理--> <bean id="tManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!--启用基于注解方式的事务控制--> <tx:annotation-driven transaction-manager="tManager"/>
三、给原方法添加注解@Transactional
// 添加 功能 @Transactional @Override public int saveObject(SysDept entity) { // 合法性验证 if(entity==null){ throw new ServiceException("保存对象不能为空"); } // 部门名不能为空 if(StringUtils.isEmpty(entity.getName())){ throw new ServiceException("部门名不能为空"); } // 调用方法 int rows = sysDeptDao.insertObject(entity); // 假设要rows=1时 提示保存失败了 事务回滚不执行保存操作 if(rows==1){ throw new ServiceException("save error!"); }return rows; }
四、测试一下吧
没有像数据库添加成功,事务回滚成功√
事务作用在业务层
相关文章推荐
- SSM事务——事务回滚如何拿到返回值
- 一站式异常处理(spring AOP事务回滚问题)
- SSM+shiro配置事务aop后启动报错
- 抛出自定义异常,spring AOP事务不回滚的解决方案
- Spring中解决Aop 事务嵌套回滚问题
- AOP事务不回滚的有关问题
- Spring的AOP事务管理默认针对unchecked异常回滚
- Spring的AOP事务管理默认针对unchecked异常回滚
- SSH与SSM学习之SSH整合09——Spring的aop事务
- SSM-MyBatis-09:Mybatis中SqlSession的close为什么能造成事务的回滚
- 使用spring声明式事务,spring使用AOP来支持声明式事务,会根据事务属性,自动在方法调用之前决定是否开启一个事务,并在方法执行之后决定事务提交或回滚事务。
- ssm手动提交事务或回滚事务
- spring aop事务配置,事务回滚
- aop管理事务,做回滚
- ssm架构中的事务回滚
- Spring事务管理,"'程序报错'但'事务不回滚'?"问题分析(SSM实例)
- 抛出自定义异常,spring AOP事务不回滚的解决方案
- 抛出自定义异常,spring AOP事务不回滚的解决方案
- SSM框架事务管理不起作用,不回滚的原因之一
- SSM框架——以注解形式实现事务管理,回滚数据库操作