一級緩存
- 一級緩存模式是開啓狀態
- 一級緩存作用域在於SqlSession
- 如果中間有對數據的更新操作,則將清空一級緩存。
二級緩存
要使用二級緩存,需要經歷兩個步驟
1,開啓二級緩存
<setting name="cacheEnabled" value="true"/>
2,在Mapper.xml中,配置二級緩存(也支持在接口配置)
在標籤下面添加標籤即可
3,實體類實現序列化接口,serializable
默認的二級緩存配置會有如下特點:
2.1 所有的Select語句將會被緩存
2.2 所有的更新語句(insert、update、delete)將會刷新緩存
2.3 緩存將採用LRU(Least Recently Used 最近最少使用)算法來回收
2.4 緩存會存儲1024個對象的引用
回收算法建議採用LRU,當然,還提供了FIFO(先進先出),SOFT(軟引用),WEAK(弱引用)等其他算法。
二級緩存關鍵說明
當關閉了SqlSession之後,纔會將查詢數據保存到二級緩存中(SqlSessionFactory)中,
所以纔有了上述的緩存命中率。MyBatis的二級緩存默認採用的是Map的實現。
衍生
其實,我們在開發中,可以集成第三方的緩存來保存MyBatis的二級緩存,常用的有EhCache和Redis