hibernate悲觀鎖 與樂觀鎖

          悲觀鎖

                

                 悲觀鎖的實(shí)現(xiàn),通常依賴于數(shù)據(jù)庫機(jī)制,在整個過程中將數(shù)據(jù)鎖定,其它任何用戶都不能讀取或修改。

           

          舉個例子:

          //查詢id=1的那條記錄,使用悲觀鎖

          User user = (User)session.load(User.class, 1 ,  LockMode.UPGRADE);

          使用了數(shù)據(jù)庫中的 for update  鎖定

           

          樂觀鎖

          大多數(shù)基于數(shù)據(jù)版本記錄機(jī)制(version)實(shí)現(xiàn),一半是在數(shù)據(jù)庫表加入一個version字段,讀取數(shù)據(jù)時將版本號一同讀出,之后更新數(shù)據(jù)時版本號加一,如果提交數(shù)據(jù)時版本號小于或等于數(shù)據(jù)庫表中的版本號,則認(rèn)為數(shù)據(jù)是過期的,否則給予更新。

           

          其實(shí)并非是鎖,是一種沖突檢測  (沒有hibernate也可以使用的,自己要在數(shù)據(jù)庫中建字段來控制,使用hibernate方便些,封裝好了)

           

          在*.hm.xml中 添加紅色部分:

                                                      

          <class

          name="com.tao3c.orm.TbBusinessInfo"  table="tb_business_info"  optimistic-lock=”version”>

           

          其中version是com.tao3c.orm.TbBusinessInfo類的屬性,hiernbate會去維護(hù)的,不用自己去該

           

           

          posted on 2009-04-06 11:57 胡鵬 閱讀(186) 評論(0)  編輯  收藏 所屬分類: hibernate

          導(dǎo)航

          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          統(tǒng)計

          常用鏈接

          留言簿(3)

          隨筆分類

          隨筆檔案

          agile

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 休宁县| 祥云县| 沁源县| 苍南县| 平顶山市| 介休市| 日照市| 琼海市| 台江县| 井陉县| 班戈县| 永平县| 宜昌市| 磐安县| 高碑店市| 新巴尔虎右旗| 潞西市| 昌乐县| 阿拉善左旗| 怀柔区| 虞城县| 苏尼特左旗| 印江| 昌乐县| 墨江| 卓资县| 江口县| 宁武县| 黄山市| 孝昌县| 新平| 保定市| 全南县| 远安县| 昭通市| 富蕴县| 墨江| 巧家县| 辰溪县| 玉山县| 芜湖县|