課程
/后端開發
/Java
/Spring事務管理
哪個大佬說一下為什么沒提交的數據可以被讀到?
2017-05-24
源自:Spring事務管理 3-3
正在回答
數據在進行完操作但沒有進行提交時,他是存在日志當中的,只有提交之后,才會從日志中存到數據庫中
? ? 一個事務讀到另一個事務,尚未提交的修改,就是臟讀。這里所謂的修改,除了Update操作,不要忘了,還包括Insert和Delete操作。
舉個例子:預訂房間。有一張Reservation表,往表中插入一條記錄,來訂購一個房間。
?事務1:在Reservation表中插入一條記錄,用于預訂99號房間。
?事務2:查詢,尚未被預定的房間列表,因為99號房間,已經被事務1預訂。所以不在列表中。
?事務1:信用卡付款。由于付款失敗,導致整個事務回滾。? ? ? ? ? ? 所以插入到Reservation 表中的記錄并不置為持久(即它將被刪除)
? ? ? ?而事務2剛剛讀取時顯示99號房間不在列表中,即99號房間不可用,已經被預定。但是由于事務回滾現在99號房間則為可用。這就是臟讀。
? ? ? ? 由于數據庫的多版本性(不是版本號)和并發性,你可以理解成緩存區(就是在數據沒提交之前的臨時存放區域),另外一個事務可能在緩存區讀取到這些已作出修改但未提交的數據,就出現了臟讀。
qq_既_定_0
舉報
事務管理是Spring重要的知識,應用事務解決數據不一致問題
3 回答虛讀和不可重復讀的區別在哪?
2 回答MyEclipse在XML配置中的類的路徑會有自動提示功能,那么Eclipse重可以嗎
2 回答程序運行可以成功,可是有警告說找不到jdbc驅動包
1 回答可以講解一下 不同傳播性質的 事物的實例么?
2 回答源碼在哪里可以下載啊
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-07-28
數據在進行完操作但沒有進行提交時,他是存在日志當中的,只有提交之后,才會從日志中存到數據庫中
2017-05-24
? ? 一個事務讀到另一個事務,尚未提交的修改,就是臟讀。這里所謂的修改,除了Update操作,不要忘了,還包括
Insert和Delete操作。
舉個例子:預訂房間。
有一張Reservation表,往表中插入一條記錄,來訂購一個房間。
?事務1:在Reservation表中插入一條記錄,用于預訂99號房間。
?事務2:查詢,尚未被預定的房間列表,因為99號房間,已經被事務1預訂。所以不在列表中。
?事務1:信用卡付款。由于付款失敗,導致整個事務回滾。
? ? ? ? ? ? 所以插入到Reservation 表中的記錄并不置為持久(即它將被刪除)
? ? ? ?而事務2剛剛讀取時顯示99號房間不在列表中,即99號房間不可用,已經被預定。但是由于事務回滾現在99號房間則為可用。這就是臟讀。
? ? ? ? 由于數據庫的多版本性(不是版本號)和并發性,你可以理解成緩存區(就是在數據沒提交之前的臨時存放區域),另外一個事務可能在緩存區讀取到這些已作出修改但未提交的數據,就出現了臟讀。