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

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

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

    xih  
    日歷

    導(dǎo)航

    常用鏈接

    留言簿(2)

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     
    項目要求能獲得CONNECTION便于對數(shù)據(jù)庫的操作,并要求能與spring中的事務(wù)處于同一事務(wù)中。實現(xiàn):
    1.定義SanHibernateTransactionManager類,繼承spring中的
    HibernateTransactionManager,便于獲得HibernateTransactionObject。把這個類注入到spring容器中。
    < bean? id ="transactionManager"
    ????????class
    ="com.san.tools.hibernate.SanHibernateTransactionManager" >
    ????????
    < property? name ="sessionFactory" >
    ????????????
    < ref? bean ="sessionFactory" />
    ????????
    </ property >
    ????
    </ bean >

    ?
    public?class?SanHibernateTransactionManager?extends?HibernateTransactionManager{

    ????
    public?Object?getTransactionObj(){
    ????????
    return?super.doGetTransaction();
    ????}

    ????
    ????????
    ????
    public?boolean?existsTransaction(Object?transaction){
    ????????
    return?super.isExistingTransaction(transaction);
    ????}

    ????
    ????
    public?Session?getSession(){
    ????????
    return?SessionFactoryUtils.getSession(this.getSessionFactory(),?true);
    ????}

    ????
    ????
    public?Session?getCurrentSession(){
    ????????HibernateTransactionObject?obj?
    =?(HibernateTransactionObject)this.getTransactionObj();
    ????????
    return?obj.getSessionHolder().getSession();
    ????}

    }

    2.開始事務(wù)。
    public ? void ?beginTransaction()? throws ?SQLException {
    ????????
    // TransactionDefinition.PROPAGATION_REQUIRED:支持當前的事務(wù),如果不存在就創(chuàng)建一個新的。

    ????????DefaultTransactionDefinition?transactionDef? = ? new ?DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRED);
    ????????
    // 創(chuàng)建一個TransactionStatus

    ????????TransactionStatus?transactionStatus? = ?transactionManager.getTransaction(transactionDef);
    ????????
    //
    取得綁定到當前線程上的session。從HibernateTransactionObject中獲得,這里修改了spring中HibernateTransactionManager.java文件,
    ????????
    // 將private?HibernateTransactionObject改為protected?HibernateTransactionObject

    ????????Session?session? = ?transactionManager.getCurrentSession();
    ??????
    if (session? != ? this .session)
    {
    ????????????System.err.println(
    " session不是同一對象 "
    );
    ????????}

    ????????
    // 將transactionStatus保存到集合中
    ???????? this .transactionStatuss.add(transactionStatus);
    ????????
    this .beginTransaction? = ? true
    ;
    ????}
    3.提交事務(wù)
    public ? void ?commit()? throws ?HibernateException,SQLException {
    ????????
    // 循環(huán)TransactionStatus集合,直至第一個transactionStatus被提交時,才真正提交

    ???????? for ( int ?i? = ?transactionStatuss.size()? - ? 1 ;i? >= ? 0 ;i -- ) {
    ????????????DefaultTransactionStatus?transactionStatus?
    =
    ?(DefaultTransactionStatus)transactionStatuss.get(i);
    ????????????transactionManager.commit(transactionStatus);
    ????????}

    ????????transactionStatuss.clear();
    ????}
    4.回滾事務(wù)
    public?void?rollBack(){
    ????????
    for(int?i?=?transactionStatuss.size()?-?1;i?>=?0;i--){
    ????????????DefaultTransactionStatus?transactionStatus?
    =?(DefaultTransactionStatus)transactionStatuss.get(i);
    ????????????transactionManager.rollback(transactionStatus);
    ????????}

    ????????transactionStatuss.clear();
    ????}
    ???????貼出這段代碼一是為了共享一點所得,二是希望能指出中間有什么不正確的地方(心里不是很有底)
    posted on 2009-03-30 15:32 費思量 閱讀(536) 評論(1)  編輯  收藏
    評論:

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
     
    Copyright © 費思量 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 亚洲午夜精品在线| 亚洲综合色成在线播放| 成人电影在线免费观看| 免费国产黄网站在线观看可以下载| 99久久99久久精品免费观看| 亚洲精品国产精品乱码不99| 久久精品视频亚洲| 亚洲xxxx视频| A毛片毛片看免费| 69式互添免费视频| 国产精品va无码免费麻豆| 一本色道久久综合亚洲精品高清| 久久久亚洲欧洲日产国码是AV| 久久精品国产亚洲AV天海翼| 永久免费AV无码网站国产| 久久精品国产亚洲av麻豆| 91精品国产免费入口| 亚洲成年看片在线观看| 亚洲欧洲日产国码在线观看| 免费夜色污私人影院网站| 91免费在线播放| 亚洲中文无码永久免费| 午夜影院免费观看| 国产精品亚洲高清一区二区| 免费无码又爽又刺激高潮软件| 久久久亚洲欧洲日产国码aⅴ| 国产精品亚洲小说专区| 国产福利视精品永久免费| 亚洲人成网77777色在线播放| 另类专区另类专区亚洲| 久久久久亚洲AV成人网| 69视频免费观看l| www亚洲精品久久久乳| 亚洲精品制服丝袜四区| 青青在线久青草免费观看| 99久久亚洲综合精品成人网| 成年免费大片黄在线观看岛国 | 亚洲欧洲日产国码在线观看| 在线A级毛片无码免费真人| 亚洲视频免费播放| 免费少妇a级毛片|