您的位置:首页 > 运维架构

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;
}

四、测试一下吧


没有像数据库添加成功,事务回滚成功√

事务作用在业务层

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: