MyBatis集成EhCache

  • 一、MyBatis集成EhCache
    • 1、引入mybatis整合ehcache的依赖
    • 2、类根路径下新建ehcache.xml,并配置
    • 3、POJO类 Clazz
    • 4、ClazzMapper类
    • 5、ClazzMapper.xml文件
    • 6、编写测试类及使用

往期文章:
一文彻底搞懂Mybatis系列(一)之mybatis入门
一文彻底搞懂Mybatis系列(二)之mybatis事务管理机制深度剖析
一文彻底搞懂Mybatis系列(三)之mybatis完成增删改查CURD功能超级详细
一文彻底搞懂Mybatis系列(四)之mybatis核心配置文件详解
一文彻底搞懂Mybatis系列(五)之手写Mybatis框架简单探索版
一文彻底搞懂Mybatis系列(六)之在WEB应用中使用Mybatis
一文彻底搞懂Mybatis系列(七)之使用Mybatis的小技巧
一文彻底搞懂Mybatis系列(八)之Mybatis参数处理
一文彻底搞懂Mybatis系列(九)之Mybatis动态SQL标签总结
一文彻底搞懂Mybatis系列(十)之SqlSession、SqlSessionFactory和SqlSessionFactoryBuilder详解
一文彻底搞懂Mybatis系列(十一)之MyBatis多对一映射查询
一文彻底搞懂Mybatis系列(十二)之MyBatis多对一映射延迟加载(association和lazyLoadingEnabled)
一文彻底搞懂Mybatis系列(十三)之MyBatis一对多映射查询
一文彻底搞懂Mybatis系列(十四)之MyBatis一级缓存
一文彻底搞懂Mybatis系列(十五)之MyBatis二级缓存
一文彻底搞懂Mybatis系列(十六)之MyBatis集成EhCache
一文彻底搞懂Mybatis系列(十七)之MyBatis使用分页插件PageHelper

一、MyBatis集成EhCache

  • 集成EhCache是为了代替mybatis自带的二级缓存。一级缓存是无法替代的。

  • mybatis对外提供了接口,也可以集成第三方的缓存组件。比如EhCache、Memcache等。都可以。

  • EhCache是Java写的。Memcache是C语言写的。所以mybatis集成EhCache较为常见,按照以下步骤操作,就可以完成集成

1、引入mybatis整合ehcache的依赖

<dependency><groupId>org.mybatis.caches</groupId><artifactId>mybatis-ehcache</artifactId><version>1.2.2</version></dependency>

2、类根路径下新建ehcache.xml,并配置

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"updateCheck="false"><!--磁盘存储:将缓存中暂时不使用的对象,转移到硬盘,类似于Windows系统的虚拟内存--><diskStore path="d:/ehcache"/><!--defaultCache:默认的管理策略--><defaultCache eternal="false" maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false"timeToIdleSeconds="0" timeToLiveSeconds="600" memoryStoreEvictionPolicy="LRU"/></ehcache>

3、POJO类 Clazz

注意:Clazz类可以实现序列化接口Serializable ,也可以不实现

public class Clazz implements Serializable {private Integer cid;private String name;......此处省略get、set方法

4、ClazzMapper类

public interface ClazzMapper {public Clazz selectByCidStep2(Integer cid);
}

5、ClazzMapper.xml文件

注意:此处要使用集成的第三方缓存配置
cache type=“org.mybatis.caches.ehcache.EhcacheCache”

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.powernode.mybatis.mapper.ClazzMapper"><!--<cache/>--><cache type="org.mybatis.caches.ehcache.EhcacheCache"/><select id="selectByCidStep2" resultType="Clazz">select * from t_clazz where cid = #{cid}</select>

6、编写测试类及使用

 @Testpublic void testSecondCache() throws Exception {SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));SqlSession sqlSession1 = factory.openSession();ClazzMapper mapper = sqlSession1.getMapper(ClazzMapper.class);Clazz clazz = mapper.selectByCidStep2(1000);System.out.println(clazz);sqlSession1.close();SqlSession sqlSession2 = factory.openSession();ClazzMapper mapper1 = sqlSession2.getMapper(ClazzMapper.class);Clazz clazz1 = mapper1.selectByCidStep2(1000);System.out.println(clazz1);sqlSession2.close();}

运行结果如下:

从结果可以发现,第一次查询了sql语句,第二次直接走了缓存,需要注意的一点是,必须要将SqlSession对象关闭掉,才会将一级缓存结果写入到二级缓存中。
因为虽然集成了第三方的缓存组件,但是一级缓存是mybatis默认开启的,无法替代。

一文彻底搞懂Mybatis系列(十六)之MyBatis集成EhCache相关推荐

  1. 一文彻底搞懂前端监控 等推荐

    大家好,我是若川.话不多说,这一次花了几个小时精心为大家挑选了20余篇好文,供大家阅读学习.本文阅读技巧,先粗看标题,感兴趣可以都关注一波,一起共同进步. 前端点线面 前端点线面 百度前端研发工程师, ...

  2. 一文快速搞懂Kudu到底是什么

    文章目录 引言 文章传送门: Kudu 介绍 背景介绍 新的硬件设备 Kudu 是什么 Kudu 应用场景 Kudu 架构 数据模型 分区策略 列式存储 整体架构 Kudu Client 交互 Kud ...

  3. layer output 激活函数_一文彻底搞懂BP算法:原理推导+数据演示+项目实战(下篇)...

    在"一文彻底搞懂BP算法:原理推导+数据演示+项目实战(上篇)"中我们详细介绍了BP算法的原理和推导过程,并且用实际的数据进行了计算演练.在下篇中,我们将自己实现BP算法(不使用第 ...

  4. opc服务器是硬件吗,opc是什么(一文彻底搞懂什么是OPC)

    原标题:(opc是什么(一文彻底搞懂什么是OPC)) opc是什么(一文完全搞懂什么是OPC)从2000年终以来,我们就一直在运用OPC软件互操纵性范例,而那些正准备踏入和想要踏入工业自动化范畴的人们 ...

  5. 一文彻底搞懂BP算法:原理推导+数据演示+项目实战(下篇)

    在"一文彻底搞懂BP算法:原理推导+数据演示+项目实战(上篇)"中我们详细介绍了BP算法的原理和推导过程,并且用实际的数据进行了计算演练.在下篇中,我们将自己实现BP算法(不使用第 ...

  6. 一文彻底搞懂ROC曲线与AUC的概念

    一文彻底搞懂ROC曲线与AUC的概念 1. ROC曲线的初级含义 1.1 精确率和召回率 1.2 ROC曲线的含义 2. ROC曲线如何绘制 3. ROC曲线和排序有什么关联? 4. AUC和基尼系数 ...

  7. 一文快速搞懂对95%置信区间的理解

    一文快速搞懂对95%置信区间的理解 综合知乎上各大神的解答和网络资料得到本文对95%置信区间的理解 先给出结论 最常出现的对置信区间的错误理解: 在95%置信区间内,有95%的概率包括真实参数  (错 ...

  8. 奇舞周刊第 440 期:一文彻底搞懂前端沙箱

    记得点击文章末尾的" 阅读原文 "查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 一文彻底搞懂前端沙箱‍ 沙箱是一种安全机制,为运行中‍的程序提供隔离环境.通常 ...

  9. 来自极客标签10款最新设计素材-系列十六

    本周我们推荐来自极客标签社区带来的10款免费设计素材,大家可以在这里免费下载你需要的内容.如果你也有更好的作品,欢迎分享到社区中来,在得到帮助的同时,也能与更多人分享来自你的作品. 免费图标:扁平风格 ...

最新文章

  1. Microsoft .NET Framework 4.6.1
  2. php匹配ubb,将php实现过滤UBB代码
  3. python经典算法小程序-Python爬虫系列之微信小程序逆向某优选爬虫签名算法!厉害...
  4. C++ static静态成员函数详解
  5. Bootstrap Table踩坑——设置多级表头后只显示第一级表头问题解决办法
  6. 微信小程序横向(scroll x)滚动 scroll view
  7. u盘在磁盘管理可以显示 但是电脑中找不到_电脑无法识别U盘?5步操作让办公族轻松搞定!...
  8. SpringBoot 发送邮件和附件(实用版)
  9. 正态总体统计量的分布
  10. 使用IPV6技术访问网站
  11. 1-2 二十四点 (20 分)【Csp认证真题】
  12. 科学计算基础软件包NumPy入门讲座(4):操作数组
  13. MySQL | 自定义函数
  14. 求矩阵A的转置矩阵B,其中Bij=Aji。
  15. 李俊计算机哈佛大学,李俊教授个人主页
  16. [渝粤教育] 山东大学 2021秋中国武术文化(艺术英语) 参考 资料
  17. mybatis从入门到精通(刘增辉著)-读书笔记第三章
  18. mysql查询关键字_MySQL查询关键词
  19. stm32驱动LED点阵屏(LY-LED16x16)
  20. Socket通信客户端报错Connection reset

热门文章

  1. java ico图标_javaweb中如何给自己的网站更改ico图标
  2. 五金机电行业供应商智慧管理平台解决方案:优化供应链管理,带动企业业绩增长
  3. 使用蓝桥杯单片机实现ADC采集和实时时钟界面转换与报警功能
  4. CGroup的原理和使用
  5. 自定义Android键盘
  6. Lucene学习——IKAnalyzer中文分词(一)
  7. 神经网络有哪些基本功能,常见的神经网络有哪些
  8. 前端怎么从H5调起微信扫描二维码?小程序使用扫码功能.
  9. 纯java的方式实现自定义自动化部署java项目
  10. 怎么用白光干涉仪的拼接测量功能