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

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

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

    隨筆-14  評論-142  文章-0  trackbacks-0
      2009年4月13日

    1, 臟讀

    一個事務(wù)讀到另一個事務(wù),尚未提交的修改,就是臟讀。這里所謂的修改,除了Update操作,不要忘了,還包括
    Insert和Delete操作。

    臟讀的后果:如果后一個事務(wù)回滾,那么它所做的修改,統(tǒng)統(tǒng)都會被撤銷。前一個事務(wù)讀到的數(shù)據(jù),就是垃圾數(shù)據(jù)。


    舉個例子:預(yù)訂房間。
    有一張Reservation表,往表中插入一條記錄,來訂購一個房間。

     事務(wù)1:在Reservation表中插入一條記錄,用于預(yù)訂99號房間。

     事務(wù)2:查詢,尚未預(yù)定的房間列表,因為99號房間,已經(jīng)被事務(wù)1預(yù)訂。所以不在列表中。

     事務(wù)1:信用卡付款。由于付款失敗,導(dǎo)致整個事務(wù)回滾。
            所以插入到Reservation 表中的記錄并不置為持久(即它將被刪除)。

    現(xiàn)在99號房間則為可用。
    所以,事務(wù)2所用的是一個無效的房間列表,因為99號房間,已經(jīng)可用。如果它是最后一個沒有被預(yù)定的房間,那么這將是一個嚴重的失誤。

    注:臟讀的后果很嚴重。

     

    2,不可重復(fù)讀。

    在同一個事務(wù)中,再次讀取數(shù)據(jù)時【就是你的select操作】,所讀取的數(shù)據(jù),和第1次讀取的數(shù)據(jù),不一樣了。就是不可重復(fù)讀。

    舉個例子:
     事務(wù)1:查詢有雙人床房間。99號房間,有雙人床。

     事務(wù)2:將99號房間,改成單人床房間。

     事務(wù)1:再次執(zhí)行查詢,請求所有雙人床房間列表,99號房間不再列表中了。也就是說,
                   事務(wù)1,可以看到其他事務(wù)所做的修改。


    在不可重復(fù)讀,里面,可以看到其他事務(wù)所做的修改,而導(dǎo)致2次的查詢結(jié)果不再一樣了。
    這里的修改,是提交過的。也可以是沒有提交的,這種情況同時也是臟讀。

    如果,數(shù)據(jù)庫系統(tǒng)的隔離級別。允許,不可重復(fù)讀。那么你啟動一個事務(wù),并做一個select查詢操作。
    查詢到的數(shù)據(jù),就有可能,和你第2次,3次...n次,查詢到的數(shù)據(jù)不一樣。一般情況下,你只會做一次,select
    查詢,并以這一次的查詢數(shù)據(jù),作為后續(xù)計算的基礎(chǔ)。因為允許出現(xiàn),不可重復(fù)讀。那么任何
    時候,查詢到的數(shù)據(jù),都有可能被其他事務(wù)更新,查詢的結(jié)果將是不確定的。


    注:如果允許,不可重復(fù)讀,你的查詢結(jié)果,將是不確定的。一個不確定的結(jié)果,你能容忍嗎?


    3,幻讀

     

    事務(wù)1讀取指定的where子句所返回的一些行。然后,事務(wù)2插入一個新行,這個新行也滿足事務(wù)1使用的查詢
    where子句。然后事務(wù)1再次使用相同的查詢讀取行,但是現(xiàn)在它看到了事務(wù)2剛插入的行。這個行被稱為幻象,
    因為對事務(wù)1來說,這一行的出現(xiàn)是不可思議的。

    舉個例子:
    事務(wù)1:請求沒有預(yù)定的,雙人床房間列表。
    事務(wù)2:向Reservation表中插入一個新紀錄,以預(yù)訂99號房間,并提交。
    事務(wù)1:再次請求有雙人床的未預(yù)定的房間列表,99號房間,不再位于列表中。


    注:幻讀,針對的是,Insert操作。如果事務(wù)2,插入的記錄,沒有提交。那么同時也是臟讀。

     

     

     

     

     

     


     

    posted @ 2009-04-13 12:37 liulang 閱讀(7331) | 評論 (0)編輯 收藏
      2009年4月8日

     clob = rs.getClob(fieldName);

     String  rtn=clob.getSubString((long)1,(int)clob.length());

    posted @ 2009-04-08 12:17 liulang 閱讀(3197) | 評論 (3)編輯 收藏
      2009年4月7日
    在resin3.0中,deploy是默認的發(fā)布目錄,在MyEclipse中直接發(fā)布到resin的deploy目錄中,起動服務(wù)器就會運行發(fā)布的項目,而在resin-3.1.1中發(fā)布到deploy目錄下的項目不回運行,需要修改conf目錄下的resin.conf文件,用editplus等文本編輯器打開,大概在229行左右,有一行 <web-app-deploy path="webapps"/>是建產(chǎn)發(fā)布目錄路徑的,我們在后邊加上一行 <web-app-deploy path="deploy"/>,這樣在deploy目錄下的項目就能正常運行了。
    posted @ 2009-04-07 10:22 liulang 閱讀(695) | 評論 (0)編輯 收藏
      2007年9月6日
         摘要: java折半查找算法  閱讀全文
    posted @ 2007-09-06 18:02 liulang 閱讀(5230) | 評論 (4)編輯 收藏
      2007年9月5日
         摘要: 這是面試的時候,最后一道算法題, 可能不習(xí)慣手寫代碼, 做錯了,太沒面子了...
    回來一上機就寫出來了!
      閱讀全文
    posted @ 2007-09-05 17:04 liulang 閱讀(6503) | 評論 (5)編輯 收藏
         摘要: 面試老考這個,都背熟了
      閱讀全文
    posted @ 2007-09-05 16:58 liulang 閱讀(94835) | 評論 (32)編輯 收藏
      2006年10月4日
         摘要:   閱讀全文
    posted @ 2006-10-04 06:47 liulang 閱讀(596) | 評論 (0)編輯 收藏
      2006年6月9日
         摘要: java集合類總結(jié)  閱讀全文
    posted @ 2006-06-09 00:16 liulang 閱讀(21016) | 評論 (2)編輯 收藏
      2006年6月8日
         摘要:   閱讀全文
    posted @ 2006-06-08 22:23 liulang 閱讀(3535) | 評論 (5)編輯 收藏
      2006年5月27日
         摘要: 關(guān)聯(lián)關(guān)系  閱讀全文
    posted @ 2006-05-27 11:43 liulang 閱讀(2952) | 評論 (3)編輯 收藏
    僅列出標題  
    主站蜘蛛池模板: 成人免费视频88| 亚洲天堂免费在线| 成年女人永久免费观看片| 今天免费中文字幕视频| 男女污污污超污视频免费在线看| 亚洲中文无码线在线观看| 亚洲成色WWW久久网站| 特级aaaaaaaaa毛片免费视频| 久久精品国产亚洲av麻豆| 亚洲国产一区二区三区| 四虎影视免费在线| 成人嫩草影院免费观看| 亚洲人成网站色7799| 亚洲男女内射在线播放| 免费观看一级毛片| 一个人在线观看视频免费| 美丽姑娘免费观看在线观看中文版| aa级女人大片喷水视频免费| 亚洲成a人片在线观看播放| 亚洲国产精品成人精品无码区在线| vvvv99日韩精品亚洲| 四虎影视精品永久免费| 免费看的成人yellow视频| 在线观看特色大片免费视频| 1000部拍拍拍18勿入免费凤凰福利 | 亚洲经典在线观看| 久久夜色精品国产亚洲AV动态图 | 亚洲AV成人片无码网站| 亚洲日韩人妻第一页| 免费欧洲美女牲交视频| 国产无遮挡色视频免费视频| 成年人免费视频观看| 女人18毛片免费观看| 成人免费777777| 永久免费av无码网站大全| 日本免费中文字幕在线看| 成人爱做日本视频免费| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 亚洲人成色7777在线观看不卡| 亚洲av区一区二区三| 亚洲精品国产精品国自产观看|