J2EE基础教程:Spring 事务

来源:互联网 发布:电视剧大全软件 编辑:程序博客网 时间:2024/05/16 09:43

事务是一些列操作。要么多完成,要么都不完成。比如在数据库操作的时,执行SQL,如果失败则回滚。
SPRING是基于声明的事务管理。Spring事务可以操作hibernate,也可以直接操作JDBC。事实上,我们一般就是再操作数据时才使用事务的概念。

Spring有专门的的事务管理器类。

1、用基于注解的方式声明事务
a.在xml配置事务管理器bean,类型指定为事务管理器(DATASOURCETRANSACTIONMANAGER)
b.在xml中启用事务注解
c.只要在代码中加上@transaction就可以了。(在对应的方法上面)

2、事务的属性
事务的传播行为(propagation):
一个事务方法被另一个事务方法调用时,如何工作。常用的有如下两种:
REQUIRED : 默认。也就是说如果中间失败,回滚到调用者的事务初始状态。也就是被调用的事务方法事务被忽略了。
REQUIRES_NEW:如果中间失败,则回滚到失败发生的被调用者的初始状态。

事务的隔离级别(isolation):
并发事务会导致以下问题
脏读:如果事务T1,T2,T1读取了被T2更新但是还没有被提交的字段。若T2回滚,T1读取的内容就是临时且无效的。
不可重复读:T1连续两次读取同一字段。由于其他事务的存在,不能保证两次读的相同
幻读:T1连续读取同一字段,由于其他事务的存在,可能所读出的记录数(行数)会增加

常用的取值为
读已提交READ_COMMITED:默认

0 0