posts - 12, comments - 8, trackbacks - 0, articles - 5
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Hibernate的二級緩存策略

          Posted on 2010-11-19 11:33 楊羅羅 閱讀(779) 評論(0)  編輯  收藏 所屬分類: java.hibernate
          Hibernate的二級緩存策略的一般過程如下:

            1) 條件查詢的時候,總是發出一條select * from table_name where …. (選擇所有字段)這樣的SQL語句查詢數據庫,一次獲得所有的數據對象。

            2) 把獲得的所有數據對象根據ID放入到第二級緩存中。

            3) 當Hibernate根據ID訪問數據對象的時候,首先從Session一級緩存中查;查不到,如果配置了二級緩存,那么從二級緩存中查;查不到,再查詢數據庫,把結果按照ID放入到緩存。

            4) 刪除、更新、增加數據的時候,同時更新緩存。

            Hibernate的二級緩存策略,是針對于ID查詢的緩存策略,對于條件查詢則毫無作用。為此,Hibernate提供了針對條件查詢的Query緩存。

            Hibernate的Query緩存策略的過程如下:

            1) Hibernate首先根據這些信息組成一個Query Key,Query Key包括條件查詢的請求一般信息:SQL, SQL需要的參數,記錄范圍(起始位置rowStart,最大記錄個數maxRows),等。

            2) Hibernate根據這個Query Key到Query緩存中查找對應的結果列表。如果存在,那么返回這個結果列表;如果不存在,查詢數據庫,獲取結果列表,把整個結果列表根據Query Key放入到Query緩存中。

            3) Query Key中的SQL涉及到一些表名,如果這些表的任何數據發生修改、刪除、增加等操作,這些相關的Query Key都要從緩存中清空。

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


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 阆中市| 视频| 榕江县| 黑龙江省| 连江县| 阿拉尔市| 隆子县| 阿拉善右旗| 廊坊市| 民县| 安化县| 沙雅县| 长乐市| 德州市| 昭平县| 泌阳县| 虞城县| 乐平市| 郧西县| 三明市| 桦南县| 靖宇县| 郎溪县| 五原县| 搜索| 水富县| 荣成市| 肇东市| 和政县| 宁陵县| 通化县| 商洛市| 凤台县| 湟源县| 金山区| 饶平县| 玉溪市| 苗栗市| 嘉禾县| 威远县| 新竹县|