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

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

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

    csusky

    常用鏈接

    統計

    最新評論

    數據庫的事務 JDBC

    TRANSACTION_NONE:
      正式地講,TRANSACTION_NONE不是一個有效的事務級別。
      根據java.sql Connection API文件,這個級別表示事務是
      不被支持的,因此理論上說你不能使用TRANSACTION_NONE作
      為一個自變量賦給Connection.setTransactionIsolation()
      方法。事實上,雖然一些數據庫實施了這個事務級別,但是
      Oracle9i卻沒有實施。


     臟讀取(TRANSACTION_READ_UNCOMMITTE):
    (允許的操作       讀-讀  讀-寫 寫-讀     (臟數據,不可重復讀,虛讀) )
       表示,這個事務級別
      允許讀取臟數據,什么是臟數據?就是指還沒有提交的數據.
      因為這個級別,是允許一個事務(A)讀取另一個事務(B)
      還沒有提交的數據.一旦事務B發生異常退出.而修改了的數據
      卻還沒提交,或者新插入的數據和刪除了的數據都還沒有
      提交,導致事務A拿到了一些臟數據,或者錯誤數據;
      因此在這個事務級別里是會發生臟讀,重復讀,錯誤讀取;

     禁止臟讀(TRANSACTION_READ_COMMITTED):
    (允許的操作       讀-讀  讀-寫 (不可重復讀,虛讀))
      在這個級別中,事務A
      只能讀取一些提交的數據,如事務B添加了一條記錄,但是
      如果事務B沒有提交,那么事務A是讀不到的,所以該事務級別,
      把臟讀給屏蔽掉了.---卻允許重復讀取,和錯誤讀取.

      什么是重復讀取呢?譬如,事務A讀取了一個數據,這個數據
      的值為"helloworld",事務A準備利用這個數據來更新一下
      其他數據,但這個時候事務B開始對這個數據進行修改,并且
      提交---"hello 無名氏",由于是已經提交了,所以事務A是可以
      看到這個數據的,當事務A在沒提交事務之前,它想看下數據
      是否正確,這個時候它發現,新讀出的數據已經和原來的數據
      不一樣了(這就是重復讀取);




     允許重復讀取(TRANSACTION_REPEATABLE_READ):
    (允許的操作       讀-讀  讀-寫(僅允許插入,不允許刪除和修改)(虛讀))
      在這個級別中,
      是禁止了臟讀,和取消了不可重復讀取,但是沒有禁止錯誤讀取;
      這個級別的事務比較嚴格,當一個事務A在讀取一個值的時候
      是不允許另一個事務對該值進行修改的;
      為了允許重復讀取,可以選用該級別,因為TRANSACTION_READ_
      COMMITED這個事務級別,是允許重復讀取提交的數據的,如果
      事務A在讀取一個數值的時候,值為"Hello World!",但這個時
      候事務B對"Hello World"值進行修改了,改為"Hello EveryOne"
      然后提交,當事務A再次去讀取這個值的時候,去發現原來讀到
      的值改變了,變成了"Hello EveryOne",為了防止出現這種情況
      可以禁止重復提交,目的是為了重復讀取不會出錯!那么這個
      時候就可以選擇
    TRANSACTION_REPEATABLE_READ這個級別,
      這個級別就是用來禁止重復提交的.
    (實際上是加了行鎖,鎖定了選中的數據,不允許修改,但是允許插入新的數據)
      雖然這個時候是禁止了重復提交,但卻可以添加刪除,
      比如事務A,作了個查詢語句"select * from 無名氏 "; 這個時候是允許事務B做這樣的操作的:
      "insert into 無名氏 values(2,'aaa')"; 這個時候,
      事務A再次做讀取操作的時候,卻發現數據莫名其妙的
      多了一條,這就是所謂的---幻影讀取;




     禁止幻讀(TRANSACTION_SERIALIZABLE):
     事務的最高級別(串行化  操作)事務級別最高,所耗費的性能也越多.
      禁止幻讀禁止了臟讀,禁止了重復提交和幻讀.
      也就是當事務A在按條件查詢的時候,事務A一旦沒有提
      交,任何事務都不能對事務A的資源進行操作--- 保證
      事務A的操作真正的原子性!


     注意:在Oracle中只支持兩種級別:

      TRANSACTION_READ_COMMITTED(默認的級別)(只有提交后
         才可以讀取)而每一個終端進行自己的DML操作 都自動開啟了一個事務

      TRANSACTION_SERIALIZABLE(竄行化操作)

    posted on 2008-03-05 09:34 曉宇 閱讀(323) 評論(0)  編輯  收藏 所屬分類: JAVA基礎

    主站蜘蛛池模板: 国产人成免费视频| 国产午夜亚洲精品国产| 美景之屋4在线未删减免费 | 亚洲综合久久1区2区3区| 成人A片产无码免费视频在线观看 成人电影在线免费观看 | 亚洲女人初试黑人巨高清| 嫩草影院在线播放www免费观看| 国产曰批免费视频播放免费s| 免费一级毛片不卡在线播放| 国产精品日本亚洲777| 亚洲电影日韩精品 | 亚洲毛片免费视频| 亚洲最新中文字幕| 在线观看AV片永久免费| 亚洲日产乱码一二三区别| 久久久久免费看黄a级试看| avtt亚洲天堂| 中文日本免费高清| 久久久久久亚洲精品成人| 国产99久久久国产精免费 | 97在线视频免费| 亚洲精品国产精品国自产网站| 中国极品美軳免费观看| 国产一级淫片a视频免费观看| 亚洲欧洲日产国码二区首页| 成人免费视频小说| 亚洲AV无码专区在线亚| 夜夜爽免费888视频| 亚州**色毛片免费观看| 亚洲an天堂an在线观看| 国产精品综合专区中文字幕免费播放 | 性感美女视频在线观看免费精品 | 香蕉视频免费在线| 人人狠狠综合久久亚洲婷婷| 日韩精品免费在线视频| 亚洲大尺度无码无码专区| 国产精品1024永久免费视频| 亚洲三级电影网站| 在线观看免费精品国产| 免费h视频在线观看| 亚洲va无码va在线va天堂|