一級快取
hibernate框架一級快取的特點:
1.它是hibernate自帶的,不用我們手動配置。
2.它是以k-v對的方式儲存資料,以key去獲得po物件。
3.只在同乙個中session共享。
由於是hibernate自身就帶有的,所以使用時不需要配置xml的工作,只要知道在同乙個session中的存在相應的物件,那麼它們都是共享的就可以了。
值得注意的是:
1.通過在做查詢的時候,有幾個查詢方法支援一級hibernate快取,它們分別是:load(),get(),iterate(),其中要注意的是iterate方法只對實體物件查詢才支援一級快取,如果使用iterate來查詢物件裡面的相關屬性,則查詢的時候不支援一級快取。
2.在管理一級快取的時候可以使用,clear()和evict(object)兩個方法,clear是清空全部,evict是清除指定的快取物件。要好好的使用這兩個方法,特別是在快取資料量大的情況下。
二級快取
hibernate框架二級快取的特點:
1.同樣是k-v對的方式儲存資料,以id作為key。
2.它的共享範圍是sessionfactory。
3.它不是自帶的,使用時需要匯入第三方實現架包,並做相應配置。常用的有ehcache(官方推薦),jbosscache,oscache等等。
二級快取和session級別的快取一樣都只對實體物件做快取,不對屬性級別的查詢做快取。
ehcache的簡單使用:
先配置乙個叫做:ehcache.xml檔案
xml**
<?xml version="1.0" encoding="utf-8"?>
diskstore 作用是如果要快取到硬碟上,這裡填寫快取到硬碟的路徑。
maxelementsinmemory 作用是最大快取連線數,也就是說只能在快取中儲存這裡設定的數量。
overflowtodisk 當設定為true的時候,如果記憶體不足時就把快取儲存到硬碟。
timetoidleseconds 最大空閒時間,超過了這個時間就算超時了。
timetoliveseconds 最大生存時間。
defaultcache 是預設呼叫的快取模版。
例如:
xml**
<?xml version="1.0" encoding="utf-8"?>
...
接下來就在hibernate.cfg.xml檔案中標明要使用二級快取
xml**
<?xml version='1.0' encoding='utf-8'?>
...
true
org.hibernate.cache.ehcacheprovider
true
...
Hibernate框架中的快取
1.快取的作用 降低程式訪問資料庫頻率,提高程式執行的效能。2.hibernate中的快取有如下幾種 1 一級快取 session 是一直存在的 不能被禁止 2 二級快取 sessionfactory 不是必然的,必須手動配置。二級快取中的資料面向所有session共享 session能獲取到二級快...
hibernate框架 快取機制之一級快取
什麼是快取 我們在記憶體中開闢一塊空間,把本來應該儲存在硬碟上的東西,然後給它放在記憶體裡,將來要讀的時候從記憶體中讀,這個部分就叫做快取。在hibernate有三種快取,一級快取,二級快取和查詢快取。一級快取是session級別的快取。例子 test public void testhuancun...
hibernate快取,mybatis快取詳解
hibernate的快取有一級快取,二級快取,查詢快取。一級快取 很簡單,session級別的快取,通過get,update可以將物件放到一級快取中。二級快取 sessionfactory級別的快取,通過get,list可以將物件放到二級快取中,這裡我必須細講一下,list雖然能夠把物件放入二級快取...