SpringBoot 声明式事务管理, 提供两个注解:
@EnableTransactionManagement: 表示是否开启事务管理,( 默认开启事务管理, 不加)
@Transactional: 表示某个方法是否进行事务管理,加在业务层的方法上,
这个方法出现异常(默认情况: 运行时异常进行回滚), 没有异常.进行事务提交, 增,删,改的方法需要加注解, 执行查询操作,可以加,可以不加
注意,默认只会对运行时异常进行事务回滚,非运行时异常不会回滚事务。
在业务层中声明事务:
@Service public class EmployeeServiceImpl implements IEmployeeService { @Autowired private EmployeeMapper empMapper; //这个方法必须在事务下执行, @Transactional(rollbackFor = Exception.class) @Override public void addEmp(Employee emp) throws Exception {//throw new RuntimeException("测试"); 出现异常回滚 empMapper.insert(emp); }