成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

配置Hibernate二級緩存剖析

開發 后端
這里介紹使用EhCache配置Hibernate二級緩存,包括把ehcache-1.2.3.jar加入到當前應用的classpath中、在hibernate.cfg.xml文件中加入EhCache緩存插件的提供類等。

Hibernate有很多值得學習的地方,這里我們主要介紹配置Hibernate二級緩存,包括介紹在Spring托管的Hibernate二級緩存等方面。

使用EhCache配置Hibernate二級緩存:

配置Hibernatee二級緩存準備:

1)把ehcache-1.2.3.jar加入到當前應用的classpath中。

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

  1. <property name="hibernate.cache.provider_class">     
  2. org.hibernate.cache.EhCacheProvider     
  3. </property>   

3)挎貝ehcache.xml文件到類路徑(項目工程的src目錄下),這個文件在Hibernate安裝目錄的etc下。

  1. <?xml version="1.0" encoding="utf-8"?> 
  2.  
  3. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  5. <hibernate-mapping> 
  6. <class name="org.qiujy.domain.cachedemo.Category" table="categories"> 
  7.  
  8. //配置緩存,必須緊跟在class元素后面對緩存中的Category對象采用讀寫型的并發訪問策略  
  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. <!-- 配置版本號,必須緊跟在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.  
  29. <cache usage="read-write"/> 
  30.  
  31. <key column="categoryId" not-null="true"/> 
  32. <one-to-many class="org.qiujy.domain.cachedemo.Product"/> 
  33. </set> 
  34.  
  35. </class> 
  36. </hibernate-mapping> 

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. <!-- 配置版本號,必須緊跟在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> 

編輯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. <!-- 設置Category類的緩存的數據過期策略 --> 
  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. <!-- 設置Category類的products集合的緩存的數據過期策略 --> 
  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二級緩存
1.在spring的配置文件中,hibernate部分加入 xml 代碼 org.hibernate.cache.EhCacheProvider true
2.為HBM表設置cache策略 xml 代碼
3.在DAO中,調用find方法查詢之前,設置使用緩存 Java代碼 getHibernateTemplate().setCacheQueries(true);

補充: 如果不設置“查詢緩存”,那么Hibernate只會緩存使用load()方法獲得的單個持久化對象,如果想緩存使用findall()、list()、Iterator()、createCriteria()、createQuery()等方法獲得的數據結果集的話,就需要設置 hibernate.cache.use_query_cache true 才行。

【編輯推薦】

  1. Hibernate3.1簡單描述
  2. Hibernate save基礎簡介
  3. 淺析Hibernate 3二級緩存基礎
  4. Hibernate流行架構淺析
  5. Hibernate update淺談
責任編輯:佚名 來源: IT168
相關推薦

2009-06-18 15:24:35

Hibernate二級

2009-09-24 11:04:56

Hibernate二級

2009-06-10 15:00:58

Hibernate二級配置

2009-09-21 13:31:10

Hibernate 3

2009-09-21 14:39:40

Hibernate二級

2009-09-23 09:37:07

Hibernate緩存

2013-09-08 23:30:56

EF Code Fir架構設計MVC架構設計

2009-08-13 18:12:12

Hibernate 3

2025-04-29 07:06:20

2009-09-21 17:17:11

Hibernate二級

2024-12-03 14:38:07

CaffeineRedis二級緩存

2022-03-01 18:03:06

Spring緩存循環依賴

2022-12-02 12:01:30

Spring緩存生命周期

2012-02-08 11:01:53

HibernateJava

2015-06-11 10:12:26

Android圖片加載緩存

2022-01-12 07:48:19

緩存Spring 循環

2009-09-22 11:24:07

Hibernate查詢

2025-06-26 01:55:00

2009-07-02 09:23:27

Hibernate緩存

2009-06-18 14:51:12

Hibernate緩存Hibernate
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线一区观看 | 国产欧美一区二区三区久久手机版 | 国产97色 | 欧美一区二区三区视频 | 国产日韩亚洲欧美 | 亚洲欧洲一区 | 99久久精品一区二区成人 | 国产在线a| 欧美一级久久 | 欧美精品久久久久 | 午夜小视频在线观看 | 狠狠操天天操 | 欧美一区二区三区在线观看 | 97成人免费| 国产第一亚洲 | 精品1区2区| 免费在线观看一级毛片 | 91免费高清 | 中文字幕欧美日韩 | 伊人久久综合 | 黄色av一区| 欧美一级片a | 久久久免费电影 | 国产欧美在线一区二区 | 久久av在线播放 | 国产精品久久国产精品 | 午夜精品福利视频 | 99久久视频 | 色偷偷888欧美精品久久久 | 免费一级网站 | 午夜激情一区 | 日本电影一区二区 | 成人在线免费观看视频 | 中文成人在线 | 国产成人高清成人av片在线看 | 国产九一精品 | 免费黄色的视频 | 在线免费观看黄色网址 | 天天天久久久 | 日韩精品一区二区三区 | 日韩免费av一区二区 |