国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Hibernate中二級(jí)緩存的配置和使用

開發(fā) 后端
本文首先分析Hibernate的耳機(jī)緩存策略,講解什么樣的數(shù)據(jù)適合放到二級(jí)緩存中,然后通過(guò)代碼實(shí)例詳述Hibernate二級(jí)緩存的配置方法。

(一)Hibernate的二級(jí)緩存策略的一般過(guò)程如下:
 
1) 條件查詢的時(shí)候,總是發(fā)出一條select * from table_name where …. (選擇所有字段)這樣的SQL語(yǔ)句查詢數(shù)據(jù)庫(kù),一次獲得所有的數(shù)據(jù)對(duì)象。

2) 把獲得的所有數(shù)據(jù)對(duì)象根據(jù)ID放入到第二級(jí)緩存中。

3) 當(dāng)Hibernate根據(jù)ID訪問(wèn)數(shù)據(jù)對(duì)象的時(shí)候,首先從Session一級(jí)緩存中查;查不到,如果配置了二級(jí)緩存,那么從二級(jí)緩存中查;查不到,再查詢數(shù)據(jù)庫(kù),把結(jié)果按照ID放入到緩存。

4) 刪除、更新、增加數(shù)據(jù)的時(shí)候,同時(shí)更新緩存。
 
Hibernate的二級(jí)緩存策略,是針對(duì)于ID查詢的緩存策略,對(duì)于條件查詢則毫無(wú)作用。為此,Hibernate提供了針對(duì)條件查詢的Query Cache。

(二)什么樣的數(shù)據(jù)適合存放到第二級(jí)緩存中?

1 很少被修改的數(shù)據(jù)

2 不是很重要的數(shù)據(jù),允許出現(xiàn)偶爾并發(fā)的數(shù)據(jù)

3 不會(huì)被并發(fā)訪問(wèn)的數(shù)據(jù)

4 參考數(shù)據(jù),指的是供應(yīng)用參考的常量數(shù)據(jù),它的實(shí)例數(shù)目有限,它的實(shí)例會(huì)被許多其他類的實(shí)例引用,實(shí)例極少或者從來(lái)不會(huì)被修改。

(三)不適合存放到第二級(jí)緩存的數(shù)據(jù)?

1 經(jīng)常被修改的數(shù)據(jù)

2 財(cái)務(wù)數(shù)據(jù),絕對(duì)不允許出現(xiàn)并發(fā)

3 與其他應(yīng)用共享的數(shù)據(jù)。

實(shí)踐部分:

使用EhCache配置二級(jí)緩存
 
配置準(zhǔn)備:
 
1)把ehcache-1.2.3.jar加入到當(dāng)前應(yīng)用的classpath中。

2)在hibernate.cfg.xml文件中加入EhCache緩存插件的提供類。

  1. <!--配置緩存插件 -->   
  2. <property name="hibernate.cache.provider_class">   
  3.     org.hibernate.cache.EhCacheProvider   
  4. </property>  

3)挎貝ehcache.xml文件到類路徑(項(xiàng)目工程的src目錄下),這個(gè)文件在Hibernate安裝目錄的etc下。
 
配置步驟:
 
Hibernate允許在類和集合的粒度上設(shè)置第二級(jí)緩存。在映射文件中,<class>和<set>元素都有一個(gè)<cache>子元素,這個(gè)子元素用來(lái)配置二級(jí)緩存。
示例:以category(產(chǎn)品類別)和product(產(chǎn)品)的映射為例:

1) 修改要配置緩存的那個(gè)持久化類的對(duì)象關(guān)系映射文件:

Category.hbm.xml

 

  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
  4. <hibernate-mapping>   
  5.     <class name="org.qiujy.domain.cachedemo.Category" table="categories">   
  6.        <!—   
  7.              配置緩存,必須緊跟在class元素后面   
  8.             對(duì)緩存中的Category對(duì)象采用讀寫型的并發(fā)訪問(wèn)策略   
  9.         -->   
  10.        <cache usage="read-write"/>   
  11.          
  12.        <id name="id" type="java.lang.Long">   
  13.            <column name="id" />   
  14.            <generator class="native" />   
  15.        </id>   
  16.        <!-- 配置版本號(hào),必須緊跟在id元素后面 -->   
  17.        <version name="version" column="version" type="java.lang.Long" />   
  18.          
  19.        <property name="name" type="java.lang.String">   
  20.            <column name="name" length="32" not-null="true"/>   
  21.        </property>   
  22.          
  23.        <property name="description" type="java.lang.String">   
  24.            <column name="description" length="255"/>   
  25.        </property>   
  26.          
  27.        <set name="products" table="products" cascade="all" inverse="true">   
  28.            <!-- Hibernate只會(huì)緩存對(duì)象的簡(jiǎn)單屬性的值,   
  29.        要緩存集合屬性,必須在集合元素中也加入<cache>子元素   
  30.        而Hibernate僅僅是把與當(dāng)前持久對(duì)象關(guān)聯(lián)的對(duì)象的OID存放到緩存中。   
  31. 如果希望把整個(gè)關(guān)聯(lián)的對(duì)象的所有數(shù)據(jù)都存入緩存,   
  32. 則要在相應(yīng)關(guān)聯(lián)的對(duì)象的映射文件中配置<cache>元素   
  33.            -->   
  34.            <cache usage="read-write"/>   
  35.              
  36.            <key column="categoryId" not-null="true"/>   
  37.            <one-to-many class="org.qiujy.domain.cachedemo.Product"/>   
  38.        </set>   
  39.          
  40.     </class>   
  41. </hibernate-mapping>   
  42.  

Product.hbm.xml

  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"   
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
  4. <hibernate-mapping>   
  5.     <class name="org.qiujy.domain.cachedemo.Product" table="products">   
  6.          
  7.        <cache usage="read-write"/>   
  8.          
  9.        <id name="id" type="java.lang.Long">   
  10.            <column name="id" />   
  11.            <generator class="native" />   
  12.        </id>   
  13.        <!-- 配置版本號(hào),必須緊跟在id元素后面 -->   
  14.        <version name="version" column="version" type="java.lang.Long" />   
  15.          
  16.        <property name="name" type="java.lang.String">   
  17.            <column name="name" length="32" not-null="true"/>   
  18.        </property>   
  19.          
  20.        <property name="description" type="java.lang.String">   
  21.            <column name="description" length="255"/>   
  22.        </property>   
  23.          
  24.        <property name="unitCost" type="java.lang.Double">   
  25.            <column name="unitCost" />   
  26.        </property>   
  27.          
  28.        <property name="pubTime" type="java.util.Date">   
  29.            <column name="pubTime" not-null="true" />   
  30.        </property>   
  31.          
  32.        <many-to-one name="category"   
  33.                 column="categoryId"   
  34.                class="org.qiujy.domain.cachedemo.Category"   
  35.                cascade="save-update"   
  36.                 not-null="true">   
  37.         </many-to-one>   
  38.          
  39.     </class>   
  40. </hibernate-mapping>   

2)編輯ehcache.xml文件:

  1. <ehcache>   
  2.     <diskStore path="c:\\ehcache\"/>   
  3.     <defaultCache   
  4.         maxElementsInMemory="10000"   
  5.         eternal="false"   
  6.         timeToIdleSeconds="120"   
  7.         timeToLiveSeconds="120"   
  8.         overflowToDisk="true"     
  9.         />   
  10.           
  11.     <!-- 設(shè)置Category類的緩存的數(shù)據(jù)過(guò)期策略 -->   
  12.     <cache name="org.qiujy.domain.cachedemo.Category"   
  13.         maxElementsInMemory="100"   
  14.         eternal="true"   
  15.         timeToIdleSeconds="0"   
  16.         timeToLiveSeconds="0"   
  17.         overflowToDisk="false"   
  18.         />   
  19.           
  20.      <!-- 設(shè)置Category類的products集合的緩存的數(shù)據(jù)過(guò)期策略 -->   
  21.      <cache name="org.qiujy.domain.cachedemo.Category.products"   
  22.         maxElementsInMemory="500"   
  23.         eternal="false"   
  24.         timeToIdleSeconds="300"   
  25.         timeToLiveSeconds="600"   
  26.         overflowToDisk="true"   
  27.         />   
  28.           
  29.     <cache name="org.qiujy.domain.cachedemo.Product"   
  30.         maxElementsInMemory="500"   
  31.         eternal="false"   
  32.         timeToIdleSeconds="300"   
  33.         timeToLiveSeconds="600"   
  34.         overflowToDisk="true"   
  35.         />   
  36.       
  37. </ehcache>   

在Spring托管的Hibernate中使用二級(jí)緩存 1.在spring的配置文件中,hibernate部分加入 xml 代碼 org.hibernate.cache.EhCacheProvider true 2.為HBM表設(shè)置cache策略 xml 代碼 3.在DAO中,調(diào)用find方法查詢之前,設(shè)置使用緩存 Java代碼 getHibernateTemplate().setCacheQueries(true); 補(bǔ)充: 如果不設(shè)置“查詢緩存”,那么hibernate只會(huì)緩存使用load()方法獲得的單個(gè)持久化對(duì)象,如果想緩存使用findall()、list()、Iterator()、createCriteria()、createQuery()等方法獲得的數(shù)據(jù)結(jié)果集的話,就需要設(shè)置 hibernate.cache.use_query_cache true 才行。

 

【編輯推薦】

  1. Hibernate查詢方法之探析
  2. Hibernate的性能優(yōu)化
  3. 淺談HibernateTemplate類的使用
  4. Hibernate一對(duì)多,多對(duì)一,多對(duì)多,一對(duì)一關(guān)系匯總
  5. 關(guān)于Struts+Hibernate分頁(yè)的問(wèn)題
責(zé)任編輯:佚名 來(lái)源: JavaEye
相關(guān)推薦

2009-09-21 14:59:31

Hibernate二級(jí)

2009-06-18 15:24:35

Hibernate二級(jí)

2009-09-24 11:04:56

Hibernate二級(jí)

2009-09-21 13:31:10

Hibernate 3

2009-09-21 14:39:40

Hibernate二級(jí)

2009-09-23 09:37:07

Hibernate緩存

2009-08-13 18:12:12

Hibernate 3

2024-12-03 14:38:07

CaffeineRedis二級(jí)緩存

2013-09-08 23:30:56

EF Code Fir架構(gòu)設(shè)計(jì)MVC架構(gòu)設(shè)計(jì)

2025-04-29 07:06:20

2022-01-12 07:48:19

緩存Spring 循環(huán)

2009-09-21 17:17:11

Hibernate二級(jí)

2025-06-26 01:55:00

2009-09-22 11:24:07

Hibernate查詢

2022-12-02 12:01:30

Spring緩存生命周期

2022-03-01 18:03:06

Spring緩存循環(huán)依賴

2009-07-02 09:23:27

Hibernate緩存

2009-06-18 14:51:12

Hibernate緩存Hibernate

2012-02-08 11:01:53

HibernateJava

2015-06-11 10:12:26

Android圖片加載緩存
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

中文无码日韩欧| 国产精品免费观看视频| 在线观看欧美日韩国产| 中文字幕在线中文字幕二区| 91免费观看视频| 99视频精品全部免费看 | 日本丶国产丶欧美色综合| 牛夜精品久久久久久久| 成人h动漫精品| 国产精品夜夜夜爽张柏芝| 亚洲国产第一| 岛国视频一区| 欧美视频久久| 成人欧美一区二区| 亚洲精品一区二区在线看| 国产精品天天狠天天看| 精品国产乱码久久久久久88av| 最近2019中文字幕大全第二页| av播放在线观看| 五月婷婷综合网| 三年片观看免费观看大全视频下载| 国产色婷婷亚洲99精品小说| 精品大片一区二区| 久久最新资源网| 国产精品黄色片| 国产亚洲精品久久久久久777| 91超碰国产在线| 精品亚洲一区二区三区| 欧美大片免费观看网址| 中文字幕日韩有码| 国产专区精品| 欧美在线播放视频| 国产一区二区亚洲| 国产欧美日韩高清| 亚洲国产精品日韩专区av有中文| 91午夜理伦私人影院| 欧美一区二区| 久久亚洲午夜电影| 麻豆视频一区二区| 在线国产精品网| 成人av资源网站| 五月天激情视频在线观看| 亚洲久草在线视频| 翔田千里一区| 欧美一卡二卡在线| 欧美人与动牲性行为| 日本一区中文字幕| 国产欧美自拍视频| 久久亚洲捆绑美女| 激情婷婷丁香| 久久aⅴ乱码一区二区三区| 久久99精品久久久久久久青青日本 | xxxx69视频| 欧美性极品xxxx做受| 性欧美1819sex性高清大胸| 一区二区成人精品| 竹菊久久久久久久| 鲁片一区二区三区| 2欧美一区二区三区在线观看视频| 黄色三级电影网站| 91精品国产综合久久久蜜臀图片| 午夜影院在线播放| 欧美在线视频播放| 亚洲欧美日韩国产| 日本成人中文字幕在线| 黑人精品xxx一区一二区| 51漫画成人app入口| 隔壁老王国产在线精品| 亚久久调教视频| 色偷偷亚洲第一综合| 日韩欧美电影在线| 全国精品免费看| 亚洲日本精品一区| 亚洲精品日韩专区silk| 在线你懂的视频| 久久久久亚洲精品国产| 亚洲专区免费| www.亚洲| 日韩av在线影院| 国产精品黑丝在线播放| 91亚洲精品国产| 精品欧美aⅴ在线网站| 外国电影一区二区| 91成人免费视频| 久久久久高清精品| 久久青青色综合| 国产欧亚日韩视频| 91免费小视频| 丁香花视频在线观看| 国产精品视频导航| 久久综合色播五月| 19禁羞羞电影院在线观看| 91理论片午午论夜理片久久| 久久久噜噜噜久久人人看| 欧美aaa免费| 亚洲mm色国产网站| 国产精品免费aⅴ片在线观看| 九色porny自拍视频在线播放| 91亚色免费| ...中文天堂在线一区| 欧美性xxx| 国产午夜精品在线| 亚洲一二三四区不卡| 91麻豆精品激情在线观看最新| 日韩国产一区久久| 91国产免费看| 女优一区二区三区| 成人一级片网站| 亚洲乱亚洲乱妇无码| 一区二区三区精品视频在线观看| 福利av痴女| 欧美精品性视频| 懂色一区二区三区免费观看| 日本中文字幕中出在线| 国产伦精品一区二区三| 性久久久久久久久久久久| 先锋影音国产精品| 欧美 日韩 国产 激情| 日韩一区二区欧美| 国产不卡高清在线观看视频| a级大胆欧美人体大胆666| 久久综合给合久久狠狠色| 亚洲高清不卡在线| 色天下一区二区三区| jizzzz日本| 18性欧美xxxⅹ性满足| 久久精品视频一区| 7777精品| 四虎永久在线高清国产精品| 久久久伊人欧美| 国产精品伦理在线| 丝袜久久网站| 国产一二区视频| 国产精品美乳一区二区免费| 午夜精品在线看| 亚洲国产精品91| www视频在线观看免费| 国产日韩欧美二区| 7777精品伊人久久久大香线蕉最新版| 99久久激情| 国产高清视频免费最新在线| 久久66热这里只有精品| 日韩精品一区二区三区三区免费| 久久精品人人做人人爽电影蜜月| 在线观看小视频| 亚洲成年人专区| 久久精品久久久久久国产 免费| 99re在线精品| 欧美freesex8一10精品| 色视频在线播放| 国产精品免费区二区三区观看| 精品视频999| 肉丝袜脚交视频一区二区| 美女高潮在线观看| 波多野结衣之无限发射| 欧美成人精品影院| 亚洲一区二区三区视频在线| 你懂的亚洲视频| 91超碰在线免费| 无人在线观看的免费高清视频| 日韩av免费在线| 欧美人与禽zozo性伦| 国产精品一区二区你懂的| 伊人www22综合色| 四虎影视精品成人| 一区二区三区我不卡| 久久综合电影一区| 亚洲自拍偷拍综合| 国产成人在线视频免费观看| 日本在线一区| 一区二区三区亚洲| 亚洲欧美色图小说| 亚洲国产黄色| 日韩成人高清| 国产1区2区视频| 欧美日韩一区二区三区在线观看免| 亚洲毛片在线看| 亚洲免费观看高清完整版在线| 欧美涩涩网站| 午夜欧美激情| 全部孕妇毛片丰满孕妇孕| 玛丽玛丽电影原版免费观看1977 | 在线的色视频| 中文字幕一区综合| 欧美一级片在线播放| 欧美一级二级三级乱码| 久久青草国产手机看片福利盒子 | 日韩欧美一区二区免费| 欧美日韩爱爱视频| 亚洲二区视频在线| 久久久精品五月天| 成人黄色视屏网站| 黄色无遮挡网站| 九九热久久66| 久久99久久99精品中文字幕| 精品久久久久久电影| 麻豆专区一区二区三区四区五区| 精品网站999| 日本在线免费播放| 精品网站999www|