Hibernate框架快取

2021-08-31 15:24:42 字數 1397 閱讀 9013

一級快取

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雖然能夠把物件放入二級快取...