这篇文章主要介绍了java Spring事务回滚的相关资料,需要的朋友可以参考下
spring 事务回滚
1、遇到的问题
当我们一个方法里面有多个数据库保存操作的时候,中间的数据库操作发生的错误。伪代码如下:
public method() {
Dao1.save(Person1);
Dao1.save(Person2);
Dao1.save(Person2);//假如这句发生了错误,前面的两个对象会被保存到数据库中
Dao1.save(Person2);
}
期待的情况:发生错误之前的所有数据库保存操作都回滚,即不保存
正常情况:前面的数据库操作会被执行,而发生数据库操作错误开始及之后的所有的数据保存操作都将失败。这样子应该都不是我们要的结果吧。
当遇到这种情况,我们就可以使用Spring的事务解决这个问题。
2、异常的一些基本知识
1) 异常的架构
异常的继承结构:Throwable为基类,Error和Exception继承Throwable,RuntimeException和IOException等继承Exception。Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked)。
2)Error异常
Error表示程序在运行期间