MyBatis框架之緩存
文章目錄
- MyBatis框架之緩存
- 緩存
- 一級緩存
- 二級緩存
緩存
一級緩存
Mybatis對緩存提供支持,但是在沒有配置的默認情況下,它只開啓一級緩存,一級緩存只是相對 於同一個SqlSession而言。
所以在參數和SQL完全一樣的情況下,我們使用同一個SqlSession對象調用一個Mapper方法,往往只執行一次SQL,因為使用SelSession第一次查詢後,MyBatis會 將其放在緩存中,以後再查詢的時候,如果沒有聲明需要刷新,並且緩存沒有超時的情況下, SqlSession都會取出當前緩存的數據,而不會再次發送SQL到數據庫。
二級緩存
MyBatis的二級緩存是Application級別的緩存,它可以提高對數據庫查詢的效率,以提高應用的性能。
- 開啓二級緩存
- 配置文件mybatis-config.xml中加入
<settings>
<!-- 開啓二級緩存 -->
<setting name="cacheEnabled" value="true"/>
</settings>
- 在mapper.xml中開啓二緩存,mapper.xml下的sql執行完成會存儲到它的緩存區
<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>
- 參數説明
- eviction
- LRU 最近最少使用的:移除最長時間不被使用的對象
- FIFO 先進先出:按對象進入緩存的順序來移除它們
- SOFT 軟引用:移除基於垃圾回收器狀態和軟引用規則的對象
- WEAK 弱引用:更積極地移除基於垃圾收集器狀態和弱引用規則的對象
- flushInterval :刷新間隔,單位為毫秒
- size :引用數目,默認值是1024
- readOnly :只讀,屬性可以被設置為true或false
- select,insert,update標籤中的緩存屬性
- useCache=false 禁用二級緩存
- flushCache=true 刷新緩存 ,一般用於insert,update
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。