posts - 122,  comments - 25,  trackbacks - 0
  Spring 提供两种事务处理方式,一种是编程式事务处理;一种是声明式事务处理。如果需要大量的事务处理,就用声明式事务处理,如果很少的事务处理,就用编程式。

编程式事务:
使用TransactionTemplate进行事务处理(Spring进行commit和rollback),原型定义如下:

public class TransactionTemplate extends DefaultTransactionDefinition implements InitializingBean {
    

    
public Object execute(TransactionCallback action) throws TransactionException {
        
if (this.transactionManager instanceof CallbackPreferringPlatformTransactionManager) {
            
return ((CallbackPreferringPlatformTransactionManager) this.transactionManager).execute(this, action);
        }
        
else {
            TransactionStatus status 
= this.transactionManager.getTransaction(this);
            Object result 
= null;
            
try {
               
// 参数TransactionCallback 是一个接口,接口中定义了doInTransaction方法
                // 只要实现TransactionCallback接口,在doInTransaction()方法里编写具体要进行事务处理的代码即可。
                result = action.doInTransaction(status);
            }
            
catch (RuntimeException ex) {
                
// 回滚事务
                rollbackOnException(status, ex);
                
throw ex;
            }
            
catch (Error err) {
                
// 回滚事务
                rollbackOnException(status, err);
                
throw err;
            }
            
this.transactionManager.commit(status);
            
return result;
        }
    }

    
}

实现TransactionCallback接口。
transactionTemplate.execute(
    
new TransactionCallback() {
        
public Object doInTransaction(TransactionStatus ts) {
             //代码实现.
}
     }

}

配置文件定义:
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            
<property name="dataSource">  
                
<ref bean="myDataSource" />  
            
</property> 
        
</bean>
        
        
<bean id="transactionTemplate" class="org.springframework.transaction.support.TransactionTemplate">
            
<property name="transactionManager">  
                
<ref bean="transactionManager" />  
            
</property>
        
</bean>

posted on 2008-07-28 14:37 josson 阅读(1077) 评论(0)  编辑  收藏 所属分类: Spring

只有注册用户登录后才能发表评论。


网站导航:
 
<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用链接

留言簿(3)

随笔分类

随笔档案

收藏夹

搜索

  •  

最新评论

阅读排行榜

评论排行榜