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

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

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

    細(xì)心!用心!耐心!

    吾非文人,乃市井一俗人也,讀百卷書,跨江河千里,故申城一游; 一兩滴辛酸,三四年學(xué)業(yè),五六點(diǎn)粗墨,七八筆買賣,九十道人情。

    BlogJava 聯(lián)系 聚合 管理
      1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks

    Hibernate事務(wù)管理
      Hibernate是JDBC的輕量級封裝,本身并不具備事務(wù)管理能力,在事務(wù)管理層,Hibernate將其委托給底層的JDBC或者JTA,以實(shí)現(xiàn)事務(wù)的管理和調(diào)度。

      Hibernate的默認(rèn)事務(wù)處理機(jī)制基于JDBCTransaction,也可以通過配置文件設(shè)定采用JTA作為事務(wù)管理實(shí)現(xiàn):

       <hibernate-configuration>

            <session-factory>

        ……

                 <property name = "hibernate.transaction.factory_class">

         net.sf.hibernate.transaction.JTATransactionFactory

        </session-factory>

       </hibernate-configuration>

    1、基于JDBC的事務(wù)管理

      Hibernate對于JDBC事務(wù)的封裝非常簡單。例如:

       session=sessionFactory.openSession();

       Transaction tx= session.beginTransaction();

       ……

       tx.commit();

    這里要注意的是,在sessionFactory.openSession()中,Hibernate會初始化數(shù)據(jù)庫連接,與此同時,將其 AutoCommit設(shè)為關(guān)閉狀態(tài),這就是說,從SessionFactory獲得session,其自動提交屬性就已經(jīng)被關(guān)閉了,下面的代碼不會對事務(wù)性數(shù)據(jù)庫產(chǎn)生任何效果。

       session=sessionFactory.openSession();

       session.save(user);

       session.close();

    如果要使得代碼真正作用到數(shù)據(jù)庫,必須顯示的調(diào)用Transaction指令

       session=sessionFactory.openSession();

       Transaction tx = session.beginTransaction();

       session.save(user);

       tx.commit();

       session.close();

    2、基于JTA的事務(wù)管理

      JTA提供了跨Session的事務(wù)管理能力,這是與JDBCTransaction最大的差異。

     JDBC事務(wù)由Connection管理,也就是說,事務(wù)管理實(shí)際上是在JDBC Connection中實(shí)現(xiàn),事務(wù)周期限于Connection的生命周期之內(nèi),對于基于JDBC Transaction的Hibernate事務(wù)管理機(jī)制,事務(wù)管理在Session所依托的JDBC Connection中實(shí)現(xiàn),事務(wù)周期限于Session的生命周期。

       JTA事務(wù)管理由JTA容器實(shí)現(xiàn),JTA容器對當(dāng)前加入事務(wù)的眾多Connection進(jìn)行調(diào)度,實(shí)現(xiàn)其事務(wù)性要求,JTA的事務(wù)周期可橫跨多個JDBC Connection生命周期,同樣,對基于JTA事務(wù)的Hibernate,JTA事務(wù)橫跨多個Session。需要注意的是,參與JTA事務(wù)的 Connection需避免對事務(wù)管理進(jìn)行干涉,如果采用JTA Transaction,就不應(yīng)該再調(diào)用Hibernate的Transaction功能。
     
     

    posted on 2007-04-25 14:16 張金鵬 閱讀(4244) 評論(1)  編輯  收藏 所屬分類: 事務(wù)編程

    Feedback

    # re: Hibernate事務(wù)管理 2012-06-05 11:21 >
    >  回復(fù)  更多評論
      


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 免费无码一区二区三区蜜桃| 大地资源免费更新在线播放| 亚洲综合无码一区二区三区| 免费人成视频在线| 免费在线观看一区| 亚洲人成亚洲精品| 国产成人免费片在线观看| 久久国产免费直播| 亚洲午夜一区二区三区| 亚洲AV伊人久久青青草原| 2020因为爱你带字幕免费观看全集| 亚洲国产AV无码一区二区三区| 亚洲精品无码成人片久久| 黄瓜视频影院在线观看免费| 一级毛片免费视频网站| 亚洲乱码无限2021芒果| JLZZJLZZ亚洲乱熟无码| 久久久www成人免费毛片 | 亚洲精品无码专区在线播放| 亚洲日韩人妻第一页| 99久久99久久精品免费看蜜桃| 午夜在线免费视频 | 国产精品美女午夜爽爽爽免费| 国产免费人成视频尤勿视频| 亚洲手机中文字幕| 亚洲免费一区二区| 国内外成人免费视频| 2019中文字幕在线电影免费 | 100000免费啪啪18免进| 国产精品美女久久久免费 | 乱爱性全过程免费视频| 亚洲欧洲精品久久| 中文字幕专区在线亚洲| 日本免费一区尤物| 国产在线观看片a免费观看 | 色播在线永久免费视频| 亚洲视频免费一区| 亚洲免费视频在线观看| 一级毛片**免费看试看20分钟| 亚洲国产熟亚洲女视频| 久久久久亚洲AV无码专区首JN|