MyBatis缓存做的并不专业,用的是map,但是它给了我们一个接口Cache,我们通过实现这个接口,可以自定义缓存。本例子用的为ehcache ,Hibernate用的也是ehcache缓存技术。
        首先我们从官网上下载ehcache的jar包,还需要两个相关的jar。在MyBatis的基础上需要导入的jar包为 ehcache-core-2.6.8.jar  slf4j-api-1.6.1.jar 和 slf4j-log4j12-1.6.2.jar (请忽略版本号)。
        接下来我们需要写一个Cache的实现。但是MyBatis已经帮我们做好了,在MyBatis官网上有MyBatis和各种项目的整合。我们找到和ehcache的整合,如图:

点进去之后:查看文档

根据提示下载mybatis和ehcache整合所需要的jar包。如 mybatis-ehcache-1.0.3.jar    导入项目中。

接下来就是如何使用了,我们只需要在mapper.xml中指定一个Cache标签。

<mapper namespace="org.acme.FooMapper"> <cache type="org.mybatis.caches.ehcache.EhcacheCache"/> ... </mapper>然后还需要在类路径下放一个ehcache.xml文件。文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
<!-- 磁盘保存路径 -->
<diskStore path="D:\44\ehcache" />

<defaultCache
maxElementsInMemory="1000"
maxElementsOnDisk="10000000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
</defaultCache>
</ehcache>

第三方缓存整合总的来说 就三步:

  1、导入第三方jar包

  2、导入与第三方缓存整合的适配包,官方有。

  3、mapper.xml 中使用自定义缓存   

<mapper namespace="org.acme.FooMapper"> <cache type="org.mybatis.caches.ehcache.EhcacheCache"/> ... </mapper>其他mapper.xml中如果也想使用 只需要引用已经使用的mapper.xml 的命名空间即可如:<mapper namespace="org.acme.AooMapper">
 <cache-ref namespace="org.acme.FooMapper" />.. </mapper>
如果有什么问题欢迎讨论。大家一起进步!

转载于:https://www.cnblogs.com/alijava/p/7421020.html

MyBatis整合第三方缓存相关推荐

  1. 关于Mybatis整合第三方缓存

    需要导入第三方相关的jar包:ehcache-core-2.6.8.jar.slf4j-api-1.6.1.jar.slf4j-log4j12-1.6.2.jar 还需要导入相关的适配文件到lib下: ...

  2. Mybatis一级缓存、整合第三方缓存ehcache、Mybatis二级缓存

    8. 缓存 8.1 一级缓存 在对数据库的一次会话中,我们有可能会反复地执行完全相同的查询语句,如果不采取一些措施的话,每一次查询都会查询一次数据库,而我们在极短的时间内做了完全相同的查询,那么它们的 ...

  3. Mybatis的一级缓存和二级缓存详解

    注:本笔记是根据尚硅谷的MyBatis视频记录的 对于任何一个持久层框架,都有缓存机制:缓存在电脑中有一块真实的存储空间(https://baike.baidu.com/item/%E7%BC%93% ...

  4. [原创]mybatis中整合ehcache缓存框架的使用

    mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...

  5. Mybatis实现二级缓存

    目录 一.Mybatis实现Ehcache作为二级缓存 1.导入相关依赖 2 .修改日志配置,因为ehcache使用了Slf4j作为日志输出 3. 在Resource中添加一个ehcache.xml的 ...

  6. mybatis的缓存机制(一级缓存二级缓存和刷新缓存)和mybatis整合ehcache

    1      查询缓存 1.1  什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 一级缓存是SqlSession级别的缓存.在 ...

  7. mybatis教程--查询缓存(一级缓存二级缓存和整合ehcache)

    查询缓存 1 缓存的意义 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题. 2 mybat ...

  8. MyBatis 缓存详解-第三方缓存做二级缓存

    除了MyBatis 自带的二级缓存之外,我们也可以通过实现Cache 接口来自定义二级缓存. MyBatis 官方提供了一些第三方缓存集成方式,比如ehcache 和redis: https://gi ...

  9. Spring整合MyBatis导致一级缓存失效问题

    熟悉MyBatis的小伙伴都知道MyBatis默认开启一级缓存,当我们执行一条查询语句后,MyBatis会以我们查询的信息生成一个缓存key,查询的结果为value,存到一个map中,即存入一级缓存. ...

最新文章

  1. AndroidWear开发之开发环境[前奏]
  2. vue页面跳转后返回原页面初始位置
  3. C++(13)--函数的进阶:内联、传递引用、参数默认值、重载、函数模板
  4. 自制基于HMM的python中文分词器
  5. i/o timeout , 希望你不要踩到这个net/http包的坑
  6. OC代码调用C++代码的回调函数步骤
  7. Js与flash交互:在html页面中用js与MyReport插件交互
  8. 2011年3月四级网络工程师笔试试卷 解答思路
  9. umijs 修改默认配置_UmiJS基础教程(2) 目录结构
  10. Inondb中的checkpoint
  11. 解决依赖包引入后重复问题Duplicate zip entry
  12. Android在recycleview中进行全选和取消全选
  13. java中八种基本类型及默认值(2015年9月22日)
  14. 连接到linux桌面,widows 远程连接到linux 桌面!
  15. [IMX6Q][Android4.4] Audio添加控制MIC左右声道接口
  16. csrf漏洞防御方案_CSRF 漏洞原理详解及防御方法
  17. 用adblock来屏蔽百度热搜
  18. Lytro光场相机的原理,科普,简单地进行了解
  19. 城市如何缓解交通拥堵
  20. Java 生鲜电商平台 - API 接口设计之 token、timestamp、sign 具体架构与实现

热门文章

  1. ​产品经理如何学机器学习——一篇以产品为中心的机器学习概论
  2. 推荐一个分布式JVM监控工具,非常实用!
  3. 微服务、DevOps…不是效率银弹,请同时升级你的管理方式
  4. Intellij IDEA就这样配置,快到飞起!
  5. ​2012年至今,细数深度学习领域这些年取得的经典成果!
  6. 「吃鸡」之父自立门户!研发新沙盒游戏连接元宇宙
  7. 她是直播聊学习成“网红”的北大博士,毕业后入职民办学校,年薪70万
  8. 学完这份「计算机基础知识」,你也可以来字节跳动(附下载)
  9. 详解Batch Normalization及其反向传播
  10. 封禁华为的美国,现在不得不在5G标准制定上“恢复合作”,网友:5G真香