欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Hibernate學(xué)習筆記(五)--數據庫事務(wù)與并發(fā)
章主要講述并發(fā)的幾種情況、數據庫鎖的種類(lèi),事務(wù)如何通過(guò)隔離級別處理并發(fā)。以及Hibernate提供了哪些方法來(lái)處理并發(fā)問(wèn)題
數據庫事務(wù)與并發(fā)
概述:事務(wù)通過(guò)隔離級別控制鎖的形式來(lái)處理數據的并發(fā)問(wèn)題。
為什么事務(wù)能夠處理并發(fā)問(wèn)題?
答:事務(wù)的特性決定它能夠處理并發(fā)問(wèn)題:一致性、隔離性、持久性、原子性
數據的并發(fā)有哪些情況?
答:
一、后發(fā)生的事務(wù)影響前面的事務(wù)
1、第一類(lèi)更新丟失:后發(fā)生的事務(wù)回滾覆蓋了前面提交成功的事務(wù)
2、臟讀:后發(fā)生的事務(wù)成功提交覆蓋了前面的回滾的事務(wù)
3、第二類(lèi)更新丟失:后發(fā)生的事務(wù)成功提交覆蓋了前面的成功提交的事務(wù)
二、后發(fā)生的事務(wù)受到前面的事務(wù)的影響
1、虛讀:后一個(gè)事務(wù)在前后兩次讀取數據時(shí)由于前面的已提交的事務(wù)進(jìn)行了插入操作,
而使數據統計前后不一致。
2、不可重復讀:后一個(gè)事務(wù)在對同一條數據前后兩次讀取時(shí)由于前面的已提交的事務(wù)
進(jìn)行了對這條數據更新操作,而使數據前后不一致。
事務(wù)如何處理并發(fā)問(wèn)題?
答:
事務(wù)通過(guò)鎖來(lái)處理并發(fā)問(wèn)題一般有兩種方式:
悲觀(guān)鎖:通過(guò)數據庫系統的鎖來(lái)處理并發(fā)
樂(lè )觀(guān)鎖:通過(guò)應用程序邏輯處理并發(fā)
悲觀(guān)鎖的種類(lèi)有哪些?
答:
一、共享鎖:用于讀數據操作。
特性:
1、加鎖條件:當一個(gè)事務(wù)執行select語(yǔ)句時(shí)數據庫系統會(huì )為這個(gè)事務(wù)分配一把共享鎖,來(lái)鎖定被查詢(xún)的記錄。
2、解鎖條件:讀取完畢則釋放共享鎖。
3、兼容性:如果數據資源上已經(jīng)放了共享鎖還可放共享鎖和更新鎖。
4、并發(fā)性能:具有良好的并發(fā)性能。
二、更新鎖:在更新操作的初始化階段用來(lái)鎖定可能要被修改的資源,避免使用共享鎖造成的死鎖問(wèn)題。
特性:
1、加鎖條件:當一個(gè)事務(wù)執行update語(yǔ)句時(shí),數據庫系統會(huì )先為事務(wù)分配一個(gè)更新鎖。
2、解鎖條件:當讀取數據完畢,進(jìn)行更新操作時(shí)將更新鎖升級為獨占鎖。
3、兼容性:與共享鎖兼容。一個(gè)數據資源上可以有多個(gè)共享鎖和一個(gè)更新鎖。
4、允許多個(gè)事務(wù)同時(shí)讀鎖定的資源,但不允許其它事務(wù)修改它。
三、獨占鎖:修改數據時(shí)使用獨占鎖。
特性:
1、加鎖條件:當執行update、delete、insert操作時(shí)數據庫系統會(huì )為數據資源使用獨占鎖。如果該資源上已經(jīng)有其它鎖
存在時(shí)則無(wú)法放置獨占鎖
2、解鎖條件:獨占鎖一直到事務(wù)結束才能被解除。
3、兼容性:獨占鎖不能和其它鎖兼容。
4、并發(fā)性:并發(fā)性能較差。
事務(wù)如何控制鎖的形式?
答:事務(wù)通過(guò)事務(wù)的隔離級別來(lái)控制鎖的形式。
事務(wù)級別有哪些?并發(fā)情況怎樣?
答:
隔離級別
是否出現第一類(lèi)丟失更新
是否出現臟讀
是否出現虛讀
是否出現不可重復讀
是否出現第二類(lèi)丟失更新
Serializable
Repeatable Read
Read Commited
Read Uncommited
在應用程序中如何使用樂(lè )觀(guān)鎖:
答:一般在數據庫表中增加Version或者是TimeStamp字段,根據讀取時(shí)以及在進(jìn)行修改操作時(shí)Version或者TimeStamp的值不同來(lái)控制并發(fā)問(wèn)題。
Hibernate是如何處理并發(fā)問(wèn)題的:
答:
一、Hibernate在讀取數據時(shí)通過(guò)設置鎖定模式來(lái)控制悲觀(guān)鎖的形式
鎖定模式
描述
LockMode.NONE
如果在Hibernate的緩存中存在指定對象,就直接返回該對象的引用;否則就通過(guò)Select語(yǔ)句到數據庫中加載該對象。這是默認值
LockMode.Read
不管Hibernate的緩存中是否存在指定對象,總是通過(guò)select語(yǔ)句到數據庫中加載該對象;如果映射文件中設置了版本元素,就執行版本檢查,比較緩存中的指定對象是否和數據庫中的版本一致。
LockMode.UPGRADE
不管Hibernate的緩存中是否存在指定對象,總是通過(guò)select語(yǔ)句到數據庫中加載該對象;如果映射文件中設置了版本元素,就執行版本檢查,比較緩存中的指定對象是否和數據庫中的版本一致。如果數據庫系統支持悲觀(guān)鎖就執行select。。。for update語(yǔ)句,如果數據庫系統不支持悲觀(guān)鎖,就執行普通的select語(yǔ)句。
LockMode.UPGRADE_NOWAIT
和LockMode.UPGRADE具有同樣的功能。此外對于Oracle數據庫,執行select。。for update nowait語(yǔ)句。
LockMode.WRITE
當Hibernate向數據庫保存或者更新一個(gè)對象時(shí),會(huì )自動(dòng)使用此模式。這種模式僅供Hibernate內部使用。
二、Hibernate在映射文件中使用樂(lè )觀(guān)鎖處理并發(fā)問(wèn)題
1、<version>元素:此元素指定的字段,每進(jìn)行一次操作就自動(dòng)加1,在進(jìn)行讀取和修改操作時(shí)如果version值不相同則拋出異常,交給應用程序處理。
2、<timestamp>元素:此元素指定的字段數據,每進(jìn)行一次操作就更新成當前時(shí)間。由于當前時(shí)間精確到妙所以在處理并發(fā)問(wèn)題的精確性上沒(méi)有<version>好。
注意:這兩個(gè)元素在使用時(shí)都要緊跟在<id>元素后面。
3、對于現有的數據庫表不包含version或者timestamp字段,要處理并發(fā)問(wèn)題可以在<class>元素上進(jìn)行如下設置:
<class name=”Account” table=”Accounts” optimistic-lock=”all” dynamic-update=”true”>
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
事務(wù)的樂(lè )觀(guān)鎖和悲觀(guān)鎖
ibernate的事務(wù)和并發(fā)(5)
Hibernate持久化實(shí)現 - TO BE THE BEST MAN---tenn - JavaEye技術(shù)網(wǎng)站
hibernate事務(wù)的一點(diǎn)東西
Hibernate入門(mén)之悲觀(guān)鎖定(28)
Hibernate事務(wù)與并發(fā)問(wèn)題處理(樂(lè )觀(guān)鎖與悲觀(guān)鎖)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久