<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 提供兩種事務處理方式,一種是編程式事務處理;一種是聲明式事務處理。如果需要大量的事務處理,就用聲明式事務處理,如果很少的事務處理,就用編程式。

    編程式事務:
    使用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 閱讀(1091) 評論(0)  編輯  收藏 所屬分類: Spring
    <2008年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    收藏夾

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 十八禁视频在线观看免费无码无遮挡骂过 | 日本牲交大片免费观看| 免费成人午夜视频| 精品亚洲永久免费精品| 亚洲av无码乱码国产精品fc2| 337p日本欧洲亚洲大胆艺术| 亚洲精品无AMM毛片| 美女视频黄的免费视频网页 | 成年女人毛片免费播放人| 亚洲国产天堂久久综合| 麻豆亚洲av熟女国产一区二| 久久免费公开视频| 国产乱辈通伦影片在线播放亚洲| 国产成人精品日本亚洲网址| 97人妻精品全国免费视频| 亚洲精品夜夜夜妓女网| MM1313亚洲精品无码久久| 51视频精品全部免费最新| 怡红院亚洲怡红院首页| 久久精品国产亚洲AV天海翼| 国产精品嫩草影院免费| 亚洲人配人种jizz| 日韩免费视频观看| 无码精品人妻一区二区三区免费| 毛片免费在线播放| 久久久久久亚洲精品无码| 57pao国产成永久免费视频| 99久久国产亚洲综合精品| 2019中文字幕免费电影在线播放| 亚洲黄色在线视频| 午夜免费福利影院| 中文字幕亚洲码在线| 日韩成人免费在线| 国产精品免费看久久久香蕉| 四虎永久免费影院在线| 亚洲AV无码专区亚洲AV桃| 亚洲情侣偷拍精品| 青娱乐免费视频在线观看| 亚洲天堂久久精品| 69视频在线观看免费| 亚洲色图校园春色|