mybatis快取
阿新 • • 發佈:2020-08-08
1、一級快取
配置:
我們來看看如何使用MyBatis一級快取。開發者只需在MyBatis的配置檔案中,新增如下語句,就可以使用一級快取。共有兩個選項,SESSION
或者STATEMENT
,預設是SESSION
級別,即在一個MyBatis會話中執行的所有語句,都會共享這一個快取。一種是STATEMENT
級別,可以理解為快取只對當前執行的這一個Statement
有效。
mybatis全域性配置檔案定義,預設開啟 session級別
<setting name="localCacheScope" value="SESSION"/>
作用範圍:當前sqlSession中(一個會話中)
總結
- MyBatis一級快取的生命週期和SqlSession一致。
- MyBatis一級快取內部設計簡單,只是一個沒有容量限定的HashMap,在快取的功能性上有所欠缺。
- MyBatis的一級快取最大範圍是SqlSession內部,有多個SqlSession或者分散式的環境下,資料庫寫操作會引起髒資料,建議設定快取級別為Statement。
2、二級快取
配置
要正確的使用二級快取,mybatis全域性配置檔案需完成如下配置的。預設關閉
<setting name="cacheEnabled" value="true"/>
作用範圍:sqlSession間共享(同一個mapper介面)
總結:建議關閉 使用成熟的分散式快取如redis
參考:
https://tech.meituan.com/2018/01/19/mybatis-cache.html