Spring 事务管理

2018-05-07  本文已影响22人  01_小小鱼_01
一、事务的基本原理

还记得我们在使用JDBC管理事务的时候是怎样处理的呢?java.sql.Connection

Connection conn = DriverManager.getConnection();
try {  
    conn.setAutoCommit(false);  //将自动提交设置为false                         
    执行CRUD操作 
    conn.commit();      //当两个操作成功后手动提交  
} catch (Exception e) {  
    conn.rollback();    //一旦其中一个操作出错都将回滚,所有操作都不成功
    e.printStackTrace();  
} finally {
    conn.colse();
}

事务是一系列的动作,要么成功、要么失败。一旦其中有一个动作出现错误,必须全部回滚。事务的出现是为了确保数据的完整性和一致性,在目前企业级应用开发中,事务管理是必不可少的。

大家都知道事务具有ACID四大属性。

二、事务的隔离级别

在多用户访问数据库的时候,会遇到事务的并发处理,可能会出现以下情况:

隔离级别越高,意味着数据库事务并发执行性能越差,能处理的操作就越少。你可以通过conn.setTransactionLevel去设置你需要的隔离级别。

三、Spring事务管理

Spring支持编程式事务管理声明式事务管理两种方式。

显然声明式事务管理要优于编程式事务管理,这正是spring倡导的非侵入式的开发方式。声明式事务管理使业务代码不受污染,一个普通的POJO对象,只要加上注解就可以获得完全的事务支持。和编程式事务相比,声明式事务唯一不足地方是,后者的最细粒度只能作用到方法级别,无法做到像编程式事务那样可以作用到代码块级别。但是即便有这样的需求,也存在很多变通的方法,比如,可以将需要进行事务管理的代码块独立为方法等等。

更多

Spring事务管理(详解+实例)

上一篇 下一篇

猜你喜欢

热点阅读