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....