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

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

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

    隨筆-57  評論-202  文章-17  trackbacks-0
          事務(wù)的4個基本特性(ACID):
          1. Atomic(原子性):事務(wù)中包含的操作被看作一個邏輯單元,這個邏輯單元中的操作要么全部成功,要么全部失敗。
          2. Consistency(一致性):只有合法的數(shù)據(jù)可以被寫入數(shù)據(jù)庫,否則事務(wù)應(yīng)該將其回滾到最初狀態(tài)。
          3. Isolation(隔離性):事務(wù)允許多個用戶對同一個數(shù)據(jù)的并發(fā)訪問,而不破壞數(shù)據(jù)的正確性和完整性。同時,并行事務(wù)的修改必須與其他并行事務(wù)的修改相互獨立。
          4. Durability(持久性):事務(wù)結(jié)束后,事務(wù)處理的結(jié)果必須能夠得到固化。

          數(shù)據(jù)庫操作過程中可能出現(xiàn)的3種不確定情況:
          1. 臟讀取(Dirty Reads):一個事務(wù)讀取了另一個并行事務(wù)未提交的數(shù)據(jù)。
          2. 不可重復(fù)讀取(Non-repeatable Reads):一個事務(wù)再次讀取之前的數(shù)據(jù)時,得到的數(shù)據(jù)不一致,被另一個已提交的事務(wù)修改。
          3. 虛讀(Phantom Reads):一個事務(wù)重新執(zhí)行一個查詢,返回的記錄中包含了因為其他最近提交的事務(wù)而產(chǎn)生的新記錄。

          標準SQL規(guī)范中,為了避免上面3種情況的出現(xiàn),定義了4個事務(wù)隔離等級:
          1. Read Uncommitted:最低等級的事務(wù)隔離,僅僅保證了讀取過程中不會讀取到非法數(shù)據(jù)。上訴3種不確定情況均有可能發(fā)生。
          2. Read Committed:大多數(shù)主流數(shù)據(jù)庫的默認事務(wù)等級,保證了一個事務(wù)不會讀到另一個并行事務(wù)已修改但未提交的數(shù)據(jù),避免了“臟讀取”。該級別適用于大多數(shù)系統(tǒng)。
          3. Repeatable Read:保證了一個事務(wù)不會修改已經(jīng)由另一個事務(wù)讀取但未提交(回滾)的數(shù)據(jù)。避免了“臟讀取”和“不可重復(fù)讀取”的情況,但是帶來了更多的性能損失。
          4. Serializable:最高等級的事務(wù)隔離,上面3種不確定情況都將被規(guī)避。這個級別將模擬事務(wù)的串行執(zhí)行。

          Hibernate將事務(wù)管理委托給底層的JDBC或者JTA,默認是基于JDBC Transaction的。
          Hibernate支持“悲觀鎖(Pessimistic Locking)”和“樂觀鎖(Optimistic Locking)”。
          悲觀鎖對數(shù)據(jù)被外界修改持保守態(tài)度,因此,在整個數(shù)據(jù)處理過程中,將數(shù)據(jù)處于鎖定狀態(tài)。悲觀鎖的實現(xiàn),往往依靠數(shù)據(jù)庫提供的鎖機制。Hibernate通過使用數(shù)據(jù)庫的for update子句實現(xiàn)了悲觀鎖機制。Hibernate的加鎖模式有:
          1. LockMode.NONE:無鎖機制
          2. LockMode.WRITE:Hibernate在Insert和Update記錄的時候會自動獲取
          3. LockMode.READ:Hibernate在讀取記錄的時候會自動獲取
          4. LockMode.UPGRADE:利用數(shù)據(jù)庫的for update子句加鎖
          5. LockMode.UPGRADE_NOWAIT:Oracle的特定實現(xiàn),利用Oracle的for update nowait子句實現(xiàn)加鎖
          樂觀鎖大多是基于數(shù)據(jù)版本(Version)記錄機制實現(xiàn)。Hibernate在其數(shù)據(jù)訪問引擎中內(nèi)置了樂觀鎖實現(xiàn),可以通過class描述符的optimistic-lock屬性結(jié)合version描述符指定。optimistic-lock屬性有如下可選取值:
          1. none:無樂觀鎖
          2. version:通過版本機制實現(xiàn)樂觀鎖
          3. dirty:通過檢查發(fā)生變動過的屬性實現(xiàn)樂觀鎖
          4. all:通過檢查所有屬性實現(xiàn)樂觀鎖
    posted on 2005-07-08 16:19 小米 閱讀(4850) 評論(4)  編輯  收藏 所屬分類: Hibernate

    評論:
    # re: 《深入淺出Hibernate》讀書筆記(4)——事務(wù)管理 2005-07-09 23:45 | bjug
    我們已經(jīng)收到您的匯款和來信,并于7月6日晚18:23回復(fù)了您的郵件,今天看看到您在網(wǎng)站上的留言,猜測您還沒有收到郵件,所以只好在這里回復(fù)您了。感謝您的真誠幫助,如果對我們的募捐活動有任何建議請與我們聯(lián)系:)。
    再次代表王俊對您的關(guān)心表示感謝  回復(fù)  更多評論
      
    # re: 《深入淺出Hibernate》讀書筆記(4)——事務(wù)管理 2005-07-10 22:40 | 小米
    啊,很抱歉,我已經(jīng)收到你們回復(fù)的郵件了,一忙就忘記回復(fù)了。讓你們惦記著這事,實在抱歉。你們也辛苦了。:),再次祝福王俊早日康復(fù)。  回復(fù)  更多評論
      
    # re: 《深入淺出Hibernate》讀書筆記(4)——事務(wù)管理 2006-03-24 16:12 | 漂浮不定
    關(guān)注  回復(fù)  更多評論
      
    # re: 《深入淺出Hibernate》讀書筆記(4)——事務(wù)管理 2007-03-30 15:57 | 超時空要塞
    感覺hibernate使用jdbc事務(wù)管理不是很好,這削弱了dao類的控制能力,需要容器、框架對事務(wù)的支持  回復(fù)  更多評論
      
    主站蜘蛛池模板: 亚洲国产精品无码久久久不卡| 亚洲午夜福利精品久久| 久久精品国产亚洲精品2020| 精品无码国产污污污免费网站国产| 四虎影库久免费视频| 久久亚洲精品高潮综合色a片| 日日夜夜精品免费视频| 亚洲变态另类一区二区三区| 国产又黄又爽又猛的免费视频播放| 亚洲国产精品无码久久九九大片| 成人免费一区二区无码视频| 欧洲 亚洲 国产图片综合| 四虎成人免费影院网址| 国产亚洲欧美在线观看| 中文字幕亚洲第一| 午夜免费啪视频在线观看| 亚洲精品国产第1页| 最近最好的中文字幕2019免费| 亚洲av无码专区在线电影天堂 | 成年女人永久免费观看片| 亚洲av午夜国产精品无码中文字 | 三年片在线观看免费观看大全动漫 | 亚洲午夜精品在线| 天天干在线免费视频| 在线精品自拍亚洲第一区| 亚洲色偷偷偷鲁综合| 国产人成免费视频网站| 国产亚洲中文日本不卡二区| 亚洲福利在线播放| 免费国产成人18在线观看| 亚洲色欲色欲www| 亚洲国产精品一区二区九九| 日韩精品无码免费专区网站| 亚洲最新在线视频| 一本久久综合亚洲鲁鲁五月天| 中文字幕乱码一区二区免费| 亚洲AV无码国产精品色| 国产一区二区三区在线免费观看| 九九热久久免费视频| 2020久久精品亚洲热综合一本 | 香蕉国产在线观看免费|