• 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

  • 相关阅读:
    sqlalchemy 查询姿势总结
    sqlalchemy 常用总结
    rsyslog 移植与配置方案介绍
    软件设计随想录
    C语言面对对象设计模式汇编
    关于linux kernel slab内存管理的一点思考
    linux PMBus总线及设备驱动分析
    Linux x86_64 APIC中断路由机制分析
    单板控制领域模型设计与实现
    Linux mips64r2 PCI中断路由机制分析
  • 原文地址:https://www.cnblogs.com/ssjifm/p/7650084.html
Copyright © 2020-2023  润新知