事物管理 ------一般在实现类中实现
@Override
@Transactional
public int updateUserLoader(ACEntity acEntity,String userName,String remark,String acId) {
String fullName = acEntity.getFullName();
String shortName = acEntity.getShortName();
Long id = acEntity.getId();
String contactPerson=acEntity.getContactPerson();
String contactPhone =acEntity.getContactPhone();
int updateLoader = acdao.updateLoader(fullName,shortName,contactPerson,contactPhone,acId);
if(updateLoader>0){
return acdao.updateUserLoader(id,contactPhone,contactPerson,userName,remark);
}
return updateLoader;
}
使用Transactional ,抛出异常之后,事务会自动回滚,不会对数据库中的数据进行修改。
事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染, 因此在实际使用中声明式事务用的比较多。
声明式事务有两种方式:
一种是在配置文件(xml)中做相关的事务规则声明;
另一种是基于 @Transactional 注解的方式。本文将着重介绍基于 @Transactional 注解的事务管理。
需要明确几点:
默认配置下 Spring 只会回滚运行时、未检查异常(继承自 RuntimeException 的异常)或者 Error。
@Transactional 注解只能应用到 public 方法才有效
使用的是 mybatis,所以 spring boot 会自动配置个 DataSourceTransactionManager,我们只需在方法(或者类)加上 @Transactional 注解,就自动纳入 Spring 的事务管理了。