一文彻底搞懂Mybatis系列(十六)之MyBatis集成EhCache
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相关推荐
- 一文彻底搞懂前端监控 等推荐
大家好,我是若川.话不多说,这一次花了几个小时精心为大家挑选了20余篇好文,供大家阅读学习.本文阅读技巧,先粗看标题,感兴趣可以都关注一波,一起共同进步. 前端点线面 前端点线面 百度前端研发工程师, ...
- 一文快速搞懂Kudu到底是什么
文章目录 引言 文章传送门: Kudu 介绍 背景介绍 新的硬件设备 Kudu 是什么 Kudu 应用场景 Kudu 架构 数据模型 分区策略 列式存储 整体架构 Kudu Client 交互 Kud ...
- layer output 激活函数_一文彻底搞懂BP算法:原理推导+数据演示+项目实战(下篇)...
在"一文彻底搞懂BP算法:原理推导+数据演示+项目实战(上篇)"中我们详细介绍了BP算法的原理和推导过程,并且用实际的数据进行了计算演练.在下篇中,我们将自己实现BP算法(不使用第 ...
- opc服务器是硬件吗,opc是什么(一文彻底搞懂什么是OPC)
原标题:(opc是什么(一文彻底搞懂什么是OPC)) opc是什么(一文完全搞懂什么是OPC)从2000年终以来,我们就一直在运用OPC软件互操纵性范例,而那些正准备踏入和想要踏入工业自动化范畴的人们 ...
- 一文彻底搞懂BP算法:原理推导+数据演示+项目实战(下篇)
在"一文彻底搞懂BP算法:原理推导+数据演示+项目实战(上篇)"中我们详细介绍了BP算法的原理和推导过程,并且用实际的数据进行了计算演练.在下篇中,我们将自己实现BP算法(不使用第 ...
- 一文彻底搞懂ROC曲线与AUC的概念
一文彻底搞懂ROC曲线与AUC的概念 1. ROC曲线的初级含义 1.1 精确率和召回率 1.2 ROC曲线的含义 2. ROC曲线如何绘制 3. ROC曲线和排序有什么关联? 4. AUC和基尼系数 ...
- 一文快速搞懂对95%置信区间的理解
一文快速搞懂对95%置信区间的理解 综合知乎上各大神的解答和网络资料得到本文对95%置信区间的理解 先给出结论 最常出现的对置信区间的错误理解: 在95%置信区间内,有95%的概率包括真实参数 (错 ...
- 奇舞周刊第 440 期:一文彻底搞懂前端沙箱
记得点击文章末尾的" 阅读原文 "查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 一文彻底搞懂前端沙箱 沙箱是一种安全机制,为运行中的程序提供隔离环境.通常 ...
- 来自极客标签10款最新设计素材-系列十六
本周我们推荐来自极客标签社区带来的10款免费设计素材,大家可以在这里免费下载你需要的内容.如果你也有更好的作品,欢迎分享到社区中来,在得到帮助的同时,也能与更多人分享来自你的作品. 免费图标:扁平风格 ...
最新文章
- Microsoft .NET Framework 4.6.1
- php匹配ubb,将php实现过滤UBB代码
- python经典算法小程序-Python爬虫系列之微信小程序逆向某优选爬虫签名算法!厉害...
- C++ static静态成员函数详解
- Bootstrap Table踩坑——设置多级表头后只显示第一级表头问题解决办法
- 微信小程序横向(scroll x)滚动 scroll view
- u盘在磁盘管理可以显示 但是电脑中找不到_电脑无法识别U盘?5步操作让办公族轻松搞定!...
- SpringBoot 发送邮件和附件(实用版)
- 正态总体统计量的分布
- 使用IPV6技术访问网站
- 1-2 二十四点 (20 分)【Csp认证真题】
- 科学计算基础软件包NumPy入门讲座(4):操作数组
- MySQL | 自定义函数
- 求矩阵A的转置矩阵B,其中Bij=Aji。
- 李俊计算机哈佛大学,李俊教授个人主页
- [渝粤教育] 山东大学 2021秋中国武术文化(艺术英语) 参考 资料
- mybatis从入门到精通(刘增辉著)-读书笔记第三章
- mysql查询关键字_MySQL查询关键词
- stm32驱动LED点阵屏(LY-LED16x16)
- Socket通信客户端报错Connection reset