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

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

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

    posts - 70,comments - 408,trackbacks - 0
          Hibernate向我們提供的主要的操縱數據庫的接口,Session就是其中的一個,它提供了基本的增,刪,改,查方法.而且具有一個緩存機制,能夠按照某個時間點,按照緩存中的持久化對象屬性的變化來更新數據庫,著就是Session的緩存清理過程.在Hibernate中對象分為三個狀態,臨時,持久化,游離.如果我們希望JAVA里的一個對象一直存在,就必須有一個變量一直引用著這個對象.當這個變量沒了.對象也就被JVM回收了.當然這個是最基本的常識了.當Session的save()方法持久化了一個對象的時候,即使這個對象的引用變量小時了.這個對象也依然存在,因為Sessoin里保存了一個這個對象的引用,當然Session緩存被清空,這個對象就OVER了.在這個對象保存在Sessoin的時候如果調用load()方法試圖去數據庫中加載一個對象,這個時候Session會先判斷緩存中有沒有這個對象,如果有了,那么就不需要去數據庫加載了.這樣可以減少訪問數據庫的頻率,還可以保證緩存中的對象于數據庫的同步.
          Session有兩個方法,一個commit()事務提交方法,還有flush()刷新緩存方法,都有著清理緩存的作用,flush()進行緩存的清理,執行一系列的SQL語句,但不會提交事務.而commit()方法會先調用flush()方法,然后在提交事務.Session還有一個方法就是setFushMode()方法,用戶設定清理緩存的時間點,主要有三種模式,默認Flush.Mode.AUTO
          1)FlushMode.AUTO Session的查詢方法,commit方法,flush方法都會清理緩存.
          2)FlushMode.COMMIT Session的commit方法,flush方法會清理緩存.
          3)FlushMode.NEVER Session的flush方法會清理緩存.
    對象的臨時狀態:剛用new創建對象的時候,它還沒有被持久化,這個時候是臨時狀態.
    對象的持久化狀態:已經被加入到Session的緩存中,通常所說的持久化對象就是只一個對象在這個狀態的時候.
    對象的游離狀態:已經被持久化,但是不屬于Session的緩存的時候是游離狀態.
    posted on 2007-05-24 15:43 我心依舊 閱讀(3862) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 全亚洲最新黄色特级网站 | 岛国片在线免费观看| 国产亚洲综合色就色| 三级黄色片免费看| 亚洲色大成网站www永久一区| 日本视频免费在线| 亚洲精品蜜夜内射| 免费中文字幕不卡视频| 亚洲AV无码AV日韩AV网站| 日本免费人成黄页网观看视频| 无码专区一va亚洲v专区在线| 久久久久亚洲精品成人网小说| 中文字幕在线日亚洲9| 免费观看男人免费桶女人视频 | 日本一区免费电影| 亚洲精华国产精华精华液网站| 无码午夜成人1000部免费视频| 免费看的黄色大片| 猫咪免费观看人成网站在线| 亚洲综合伊人久久综合| 一级毛片免费不卡在线| 亚洲中文字幕无码爆乳| 国产裸模视频免费区无码| 一区二区3区免费视频| 亚洲激情在线视频| 手机在线毛片免费播放| 免费一级做a爰片久久毛片潮| 日本a级片免费看| 免费在线黄色电影| 亚洲一区二区三区国产精品无码| 国产在线精品免费aaa片| 亚洲一区中文字幕在线观看| 一本久久综合亚洲鲁鲁五月天| 亚洲 欧洲 日韩 综合在线| 久久久久亚洲AV无码专区网站| 亚洲av无码专区国产不乱码| 亚洲线精品一区二区三区 | 久久免费香蕉视频| 亚洲精品中文字幕麻豆| 日韩亚洲精品福利| 99精品在线免费观看|