悲觀鎖:從加載對象開始鎖定。在提交以前這段時間,一直保持鎖定狀態,直到commit()提交後再解鎖。數據庫
設置方法:session
session.load(Info.class,"p003",LockOptions.UPGRADE);
樂觀鎖:在操做時,不作鎖定,在提交時,進行衝突檢測,將如今數據庫中的內容與剛開始讀的內容對照一下,若是內容不一致,就拋異常spa
樂觀鎖能夠用兩種方法設置:code
1.在數據庫中加一個字段version,在實體類中加一個屬性version,映射文件中加<version name="version"> <version name="version"> 這個字段要放在id下面對象
每次提交時,自動會自動檢查是否改變blog
2.修改數據時:update info set name=?,sex=?,nation=?,birthday=? where code=? and name=? and sex=? and nation=? and birthday=?it
經過這樣的方式,在修改時,確保不會出現衝突,若是數據發生改變,則不會對數據進行修改io