二級快取允許手動管理
首先, 二級快取可以跨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入門之一級快取 基本相同,所以不貼重複的 了,不同之處...