<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 122,  comments - 25,  trackbacks - 0
      Spring 提供兩種事務(wù)處理方式,一種是編程式事務(wù)處理;一種是聲明式事務(wù)處理。如果需要大量的事務(wù)處理,就用聲明式事務(wù)處理,如果很少的事務(wù)處理,就用編程式。

    編程式事務(wù):
    使用TransactionTemplate進(jìn)行事務(wù)處理(Spring進(jìn)行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 {
                   
    // 參數(shù)TransactionCallback 是一個(gè)接口,接口中定義了doInTransaction方法
                    // 只要實(shí)現(xiàn)TransactionCallback接口,在doInTransaction()方法里編寫(xiě)具體要進(jìn)行事務(wù)處理的代碼即可。
                    result = action.doInTransaction(status);
                }
                
    catch (RuntimeException ex) {
                    
    // 回滾事務(wù)
                    rollbackOnException(status, ex);
                    
    throw ex;
                }
                
    catch (Error err) {
                    
    // 回滾事務(wù)
                    rollbackOnException(status, err);
                    
    throw err;
                }
                
    this.transactionManager.commit(status);
                
    return result;
            }
        }

        
    }

    實(shí)現(xiàn)TransactionCallback接口。
    transactionTemplate.execute(
        
    new TransactionCallback() {
            
    public Object doInTransaction(TransactionStatus ts) {
                 //代碼實(shí)現(xiàn).
    }
         }

    }

    配置文件定義:
            <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 閱讀(1092) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Spring
    <2008年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(3)

    隨筆分類(lèi)

    隨筆檔案

    收藏夾

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 色五月五月丁香亚洲综合网| a级毛片免费全部播放无码| 国产免费久久精品| 中国人免费观看高清在线观看二区| 亚洲AV无码精品无码麻豆| 女人与禽交视频免费看| 国产免费一区二区三区免费视频 | 久久精品国产亚洲AV无码麻豆| 四虎免费在线观看| 久久久精品免费国产四虎| 亚洲人成电影网站色www| 亚洲AV综合色一区二区三区| 免费特级黄毛片在线成人观看| 国产一区二区三区免费观看在线| youjizz亚洲| 国产亚洲精品高清在线| 青苹果乐园免费高清在线| CAOPORM国产精品视频免费| 国产色在线|亚洲| 亚洲国产三级在线观看| 日日AV拍夜夜添久久免费| 久久99青青精品免费观看| 猫咪免费人成网站在线观看入口| 亚洲日本乱码一区二区在线二产线| 国产在线19禁免费观看国产| 美女内射无套日韩免费播放| 鲁啊鲁在线视频免费播放| 亚洲午夜久久久久久尤物| 人人狠狠综合久久亚洲婷婷| 哒哒哒免费视频观看在线www | 国产尤物在线视精品在亚洲| 亚洲图片在线观看| 久久亚洲AV永久无码精品| 永久免费视频v片www| 亚洲三级在线免费观看| 可以免费观看的毛片| 成人国产精品免费视频| 美女18毛片免费视频| 亚洲七久久之综合七久久| 国产精品高清视亚洲精品| 亚洲理论在线观看|