MyBatis快取之二級快取 ehcache整合

2021-08-27 20:46:56 字數 1400 閱讀 8254

二級快取允許手動管理

首先, 二級快取可以跨session, 只要在乙個sessionfactory範圍之內則允許跨session, 但要想使用二級快取, 需要手動進行配置

在"sqlmapconfig.xml"配置檔案中新增如下配置(包括之前的配置我一併貼上來了)

也就是說, 在mybatis框架中, 只要是關於快取的配置, 都指的是二級快取二級快取中的相關配置如下:

mybatis自己提供的二級快取的控制力度比較細, 能夠精確到配置檔案或sql語句

當開啟二級快取後, mybatis就可以跨session了

測試**:

@test

public void test()

注意: 需要在相應的類(此處是person類)實現序列化, 否則會無法關閉session, 原因在於mybatis的二級快取是將資料快取到硬碟上的, 所以需要序列化

二級快取的策略是這樣的, 首先先查二級快取是否存在該資料, 沒有則到一級快取中去查詢, 再沒有則到資料庫中查詢

①在配置檔案中的每個查詢標籤中都有乙個"usecache"的屬性, 預設為true, 代表使用二級快取, 改為false, 則每次都不從快取中讀取, 而是直接查詢資料庫

②在配置檔案中的每個更新標籤中都有乙個"flushcache"的屬性, 預設為true, 代表在更新資料時重新整理快取, 改為false, 則每次更新時都不重新整理快取, 從而當其他查詢需要使用快取時還是能讀取到舊的資料(insert標籤也有該屬性)

******************************=以上是mybatis框架提供的快取機制******************************=

下面介紹常用的自定義配置的二級快取框架(ehcache)

引入具體包, 依賴包在mybatis系列的第一篇的時候已經給出了, 然後再將配置檔案"ehcache.xml"放到到classpath下即可

ehcache.xml中的預設配置:

引入ehcache二級快取, 在具體的配置檔案中配置"ehcachecache"類的全路徑即可:

測試輸出:

至此, 整合ehcache的配置已經成功.

Mybatis之二級快取

mybatis預設對二級快取是關閉的,一級快取預設開啟 下面就說說為什麼使用二級快取需要注意 二級快取是建立在同乙個namespace下的,如果對錶的操作查詢可能有多個namespace,那麼得到的資料就是錯誤的。根據以上,想要使用二級快取時需要想好兩個問題 1 對該錶的操作與查詢都在同乙個name...

MyBatis快取策略之二級快取

從圖中可以看出 sqlsession2去查詢使用者id為1的使用者資訊,去快取中找是否存在資料,如果存在直接從快取中取出資料。明白了mybatis中二級快取的原理後,接下來就是如何使用二級快取了。在使用之前,首先得開啟二級快取的開關。開啟了二級快取後,還需要將要快取的pojo實現serializab...

MyBatis入門之二級快取

mybatis的二級快取是namespace級別的,不同於一級快取,二級快取是sqlsession共享的,並且預設是不開啟的,如果要開啟,需要在mybatis的配置檔案中的settings節點下,手動設定 由於示例 與之前的部落格 mybatis入門之一級快取 基本相同,所以不貼重複的 了,不同之處...