八、springBoot及简事务操作
这里分为三个步骤。
一、说明概念。
二、体验一下springMVC中的配制。
三、然后再用springBoot中的事物。
3.2、代码说明
一、说明
事物就是在同一个操作当中如果整条流程中只要有发生了错误,可以把出错误之前所有的操作进行回滚撤销的操作。
如有10行代码 在第4行中往数据库中添加了一条数据。但是在第6行发生了异常获错误。有了事务机制后,会撤回之前所有的操作。如果没有任何问题。会在执行完第10行后,统一提交。
在Spring中,事务有两种实现方式,分别是编程式事务管理和声明式事务管理两种方式。
编程式事务管理: 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。
声明式事务管理: 建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。
声明式事务管理不需要入侵代码,通过@Transactional就可以进行事务操作,更快捷而且简单。推荐使用
二、体验一下springMVC中的配制
https://blog.csdn.net/wkl305268748/article/details/77619367/
三、springBoot中的事物。
在第七节中的项目之上体验。
3.1代码
如果想让一个函数具有事物功能,就在函数上加上注解** @Transactional **
@Transactional
public int insert(User user) {
int result = userMapper.insert(user);
log.info(user.toString());
int a = 2/0;
return result;
}
3.2代码说明:
方法上没有加: ** @Transactional **
上面函数这行代码,是会往数据添加一条数据.如果没有加上** @Transactional **走到这行代码的进候直接就往数据库中加了一条数据。
int result = userMapper.insert(user);
方法上加了 ** @Transactional **
当走到上面这句代码的时候数据库不会急时加上一条数据。要等走完这个方法中所有的代码的时候才会一起提交事务。
注意
如果这个函数中任何地方出现了异常。所以对数据库的操作都会回滚。
所以。在这个函数中不要加任何的try{}catch{}。因为被捕获后是不会产生回滚效果的。