mybatis開啟二級快取

2021-08-20 10:31:15 字數 1632 閱讀 1129

1.修改配置檔案mybatis-config.xml加入,全域性配置引數,需要時再設定

cacheenabled 介紹

描述 : cacheenabled

允許值: 對在此配置檔案下的所有cache 進行全域性性開/關設定。

預設值 (true/false): true 

開啟快取後,第一次查詢會執行sql,第二次及以後的查詢都會從快取中讀取資料

注意:開啟快取的弊端是資料沒有實時性,當資料庫中的資料一旦修改,查詢的資料還是快取中的資料沒有實時性,對於某些需要實時性顯示資料的介面我們可以設定usecache="false",設定該屬性後,該介面每次查詢出來都是去執行sql查詢出實時性資料。

①.設定usecache=false可以禁用當前select語句的二級快取,即每次查詢都會發出sql去查詢,預設情況是true,即該sql使用二級快取。

[html] view plain

copy

<

selectid=

"findorderlistresultmap"

resultmap

="ordersusermap"

usecache

="false"

>

總結:針對每次查詢都需要最新的資料sql,要設定成usecache=false,禁用二級快取。

②.清空快取

[html] view plain

copy

<

insertid=

"insertuser"

parametertype

="cn.itcast.mybatis.po.user"

flushcache

="true"

>

總結:一般下執行完commit操作都需要重新整理快取,flushcache=true表示重新整理快取,這樣可以避免資料庫髒讀。

注意:(1)當為select語句時:

flushcache預設為false,表示任何時候語句被呼叫,都不會去清空本地快取和二級快取。

usecache預設為true,表示會將本條語句的結果進行二級快取。

(2)當為insert、update、delete語句時:

flushcache預設為true,表示任何時候語句被呼叫,都會導致本地快取和二級快取被清空。

usecache屬性在該情況下沒有。

當為select語句的時候,如果沒有去配置flushcache、usecache,那麼預設是啟用快取的,所以,如果有必要,那麼就需要人工修改配置

3.對應的pojo實現序列化(implements serializable)

4.mybatis自身實現二級快取弊端在於只能作用於資料庫,此時需要我們引用第三方庫作為快取庫,這樣快取更具有擴充套件性。。。(待續)

mybatis二級快取

配置檔案 不用配置也是預設開啟的 在sqlmapconfig.xml中 cacheenabled value true 如果不需要二級快取,可以在設定禁用二級快取 select 這樣每次都是從資料庫中讀取 在執行insert,update,delete後會重新整理快取 清空快取 可以設定不重新整理 ...

mybatis 二級快取

一 mybatis 二級快取 3 mybatis 預設二級快取未開啟 內建是支援二級快取的。但是由於本身是資料庫管理元件 所以快取並不好用 所以還是要用第三方的快取機制。典型的 ehcache 二 二級快取的常見演算法 lru least recently used 這種演算法是在每個物件中維護乙個...

Mybatis二級快取

原文找不到了,如果作者看到了可以留下位址,我再加上引用 sqlsession2去查詢使用者id為1的使用者資訊,去快取中找是否存在資料,如果存在直接從快取中取出資料。明白了mybatis中二級快取的原理後,接下來就是如何使用二級快取了。在使用之前,首先得開啟二級快取的開關。2.1 開啟二級快取 2....