mybatis快取分為一級快取、二級快取。mybatis一級快取預設是開啟的;二級快取全域性開關預設也是開啟的,但需要配置cachenamespace才可生效!以mybatis-plus為例
mybatis-plus
: configuration
:log-impl
: org.apache.ibatis.logging.slf4j.slf4jimpl
default-statement-timeout
:300
# mybatis二級快取全域性開關
cache-enabled
:true
# mybatis一級快取作用域(session、statement)
local-cache-scope
: session
1.快取模式為唯讀模式,返回物件本身而非副本;
2.無法禁用,但可通過local-cache-scope: statement調整作用範圍;作用域為statement「等效」於禁用(乙個statement可包含多個sql,此時無法完全禁用)。1.快取模式預設為讀寫模式,返回物件副本(物件序列化),可設定readwrite屬性進行調整。
@cachenamespace
(flushinterval =
600000
, size =
4096
, readwrite =
true
)
2.可禁用mybatis-plus
:configuration
:# mybatis二級快取全域性開關
cache-enabled
:false
快取預設實現類:org.apache.ibatis.cache.impl.perpetualcache3.自動重新整理快取
同一namespace下修改、刪除資料時,快取自動重新整理。重新整理其它namespace下快取,使用@cachenamespaceref註解。
4.手動重新整理快取
import com.example.demo.entity.commparamdefentity;
import org.apache.ibatis.annotations.options;
import org.apache.ibatis.annotations.select;
/** * @author ouruyi
*/public
inte***ce
extends
mybatis-plus
:configuration
:# 此處為mybatis-plus通過system.out輸出日誌到控制台,影響效能(禁用可提公升數倍)
log-impl
: org.apache.ibatis.logging.stdout.stdoutimpl
改為:
mybatis-plus
:configuration
:log-impl
: org.apache.ibatis.logging.slf4j.slf4jimpl
druid
:filters
: stat,config
min-idle:10
max-active
:100
max-pool-prepared-statement-per-connection-size:20
min-evictable-idle-time-millis
:300000
initial-size:10
max-wait
:60000
time-between-eviction-runs-millis
:120000
pool-prepared-statements
:true
# 高併發效能低
test-on-borrow
:false
test-on-return
:false
test-while-idle
:true
# 持活,檢測間隔預設1分鐘(不宜超過3分鐘,華為防火牆跨網段切斷空閒連線時限3分鐘)
keep-alive
:false
validation-query
: select 'x' from dual
# 校驗超時1秒
validation-query-timeout
:1
mybatis快取 一級快取,二級快取
什麼是快取 為什麼使用快取 適用於快取的資料 二級快取的使用步驟 在主配置檔案配置 name cacheenabled value ture 讓當前的操作支援快取 在對映檔案中 select 標籤中配置 在select標籤中 新增乙個屬性 userscache true 先建立出乙個sqlsessi...
mybatis一級快取 二級快取
一級快取基於sqlsession,是預設開啟的,在運算元據庫時需要構造sqlsession物件,在物件中有乙個hashmap用於儲存快取資料。不同的sqlsession之間快取資料區域是互相不影響的。一級快取的作用域是sqlsession範圍的,當在同乙個sqlsession中執行兩次相同的sql語...
Mybatis 一級快取 二級快取
快取分類 一級快取 事務範圍 快取只能被當前事務訪問。快取的生命週期 依賴於事務的生命週期當事務結束時,快取也就結束生命週期。在此範圍下,快取的介質是記憶體。二級快取 程序範圍 快取被程序內的所有事務共享。這些事務有 可能是併發訪問快取,因此必須對快取採取必要的事務隔離機制。快取的生命週期依賴於程序...