Java Mybatis二級快取

2021-09-05 08:55:31 字數 1168 閱讀 8516

1、  在核心配置檔案sqlmapconfig.xml中加入以下內容(開啟二級快取總開關):

cacheenabled設定為 true

2、在對映檔案中,加入以下內容,開啟二級快取:

3、實現序列化

由於二級快取的資料不一定都是儲存到記憶體中,它的儲存介質多種多樣,所以需要給快取的物件執行序列化。

如果該類存在父類,那麼父類也要實現序列化。

禁用二級快取

該statement中設定usercache=false可以禁用當前select語句的二級快取,即每次查詢都是去資料庫中查詢,預設情況下是true,即該statement使用二級快取。

重新整理二級快取

spring和mybatis整合時, 每次查詢之後都要進行關閉sqlsession,關閉之後資料被清空。所以spring整合之後,如果沒有事務,一級快取是沒有意義的。而如果開啟二級快取的話,關閉sqlsession後,會把該sqlsession一級快取中的資料新增到namespace的二級快取中。這樣,快取在sqlsession關閉之後依然存在。

二級快取是建立在同乙個namespace下的,如果對錶的操作查詢可能有多個namespace,那麼得到的資料就是錯誤的。

舉個例子:

根據以上,想要使用二級快取時需要想好兩個問題:

hibernate二級快取

cacheconcurrencystrategy.none cacheconcurrencystrategy.read only 唯讀模式,在此模式下,如果對資料進行更新操作,會有異常 cacheconcurrencystrategy.read write 讀寫模式在更新快取的時候會把快取裡面的資料...

hibernate 二級快取

session快取 一級快取 sql查詢結果快取,由hibernate管理 sessionfactory內建快取,內建快取是hibernate自帶的,用於存放預定義的sql以及hbm.xml描述的元資料,不可解除安裝 sessionfactory外接快取 二級快取 由外部外掛程式提供,外接快取的資料...

Hibernate二級快取

hibernate的session在事務級別進行持久化資料的快取操作。當然,也有可能分別為每個類 或集合 配置集群 或jvm級別 sessionfactory級別 的快取。你甚至可以為之插入乙個集群的快取。注意,快取永遠不知道其他應用程式對持久化倉庫 資料庫 可能進行的修改 即使可以將快取資料設定為...