MyBatis緩存機制-二級緩存


  MyBatis二級緩存是基於namespace級別的緩存.

1.MyBatis的緩存機制整體設計以及二級緩存的工作模式

  

   如上圖所示,當開一個會話時,一個SqlSession對象會使用一個Executor對象來完成會話操作,MyBatis的二級緩存機制的關鍵就是對這個Executor對象做文章。如果用戶配置了"cacheEnabled=true",那么MyBatis在為SqlSession對象創建Executor對象時,會對Executor對象加上一個裝飾者:CachingExecutor,這時SqlSession使用CachingExecutor對象來完成操作請求。CachingExecutor對於查詢請求,會先判斷該查詢請求在Application級別的二級緩存中是否有緩存結果,如果有查詢結果,則直接返回緩存結果;如果緩存中沒有,再交給真正的Executor對象來完成查詢操作,之后CachingExecutor會將真正Executor返回的查詢結果放置到緩存中,然后在返回給用戶。

2.二級緩存實現的選擇

  1.MyBatis自身提供的緩存實現 

<cache  type="org.apache.ibatis.cache.impl.PerpetualCache"> </cache>

  2.用戶自定義的cache接口

  3.和第三方內存還存庫的集成

3.二級緩存自身實現和第三方集成的差別

  自身實現只可作用與數據庫,而第三方集成的緩存擴展性更強.

4.ehcache的優點

  1.它采用了分布式緩存,,兼具靈活性和擴展性.

  2.標准分布式搜索使用了流式查詢接口的方式.

  3.多種配置方式,自動資源控制

  詳細信息:http://raychase.iteye.com/blog/1545906

5.MaBatis配置ehcache

  (1).導包

    導入:ehcache-core-2.6.5.jar 和mybatis-ehcache-1.0.2.jar 兩個包

  (2).配置文件

    ehcache-failsafe.xml

    

  (3).在mapper映射文件cache標簽中設置type為Ehcashe的實現類為

    

  (4).測試二級緩存

 

 

參考博客:http://blog.csdn.net/luanlouis/article/details/41408341

     http://baijiahao.baidu.com/s?id=1575518563721435&wfr=spider&for=pc


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM