MyBatis笔记——EhCache二级缓存
介绍
ehcache是一个分布式缓存框架。
我们系统为了提高系统并发,性能、一般对系统进行分布式部署(集群部署方式)
不使用分布缓存,缓存的数据在各各服务单独存储,不方便系统开发。所以要使用分布式缓存对缓存数据进行集中管理。
mybatis无法实现分布式缓存,需要和其它分布式缓存框架进行整合。这里我主要介绍整合EhCache。下面开始实例。
实例
1.导入MyBatis-EhCache整合包
项目结构如下:
2.classpath下添加EhCache配置文件(ehcache.xml)
<ehcache><diskStore path="F:\cache_test" /> <defaultCache eternal="false" maxElementsInMemory="1000" timeToIdleSeconds="20" timeToLiveSeconds="20" overflowToDisk="true" maxEntriesLocalDisk="10000000" diskExpiryThreadIntervalSeconds="20" memoryStoreEvictionPolicy="LRU" /> </ehcache>
3.MyBatis配置文件(SqlMapConfig.xml)打开二级缓存
<settings><setting name="cacheEnabled" value="true"/> </settings>
4.Mapper配置文件添加cache标签
<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>
5.缓存结果继承序列化接口
public class User implements Serializable
测试
测试类如下:
package cn.pwc.test;import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import cn.pwc.dao.UserMapper; import cn.pwc.pojo.User; public class Test { public static void main(String[] args) { SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(Test.class.getClassLoader().getResourceAsStream("SqlMapConfig.xml")); SqlSession session = factory.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.findById(1); System.out.println(user.toString()); session.commit(); session.close(); SqlSession session2 = factory.openSession(); UserMapper mapper2 = session2.getMapper(UserMapper.class); User user2 = mapper2.findById(1); System.out.println(user2.toString()); session2.commit(); session2.close(); } }
测试结果如下:
DEBUG [cn%002epwc%002edao%002e%0055ser%004dapper.data] net.sf.ehcache.store.disk.Segment - fault removed 0 from heap DEBUG [cn%002epwc%002edao%002e%0055ser%004dapper.data] net.sf.ehcache.store.disk.Segment - fault added 0 on disk
转载于:https://www.cnblogs.com/haw2106/p/6952005.html
MyBatis笔记——EhCache二级缓存相关推荐
- MyBatis学习系列——二级缓存
[MyBatis学习13]MyBatis中的二级缓存 发表于2016/6/16 7:26:19 4922人阅读 分类: ● 框架技术 --[MyBatis] 1. 二级缓存的原理 前面介绍了,myb ...
- 【MyBatis学习8】MyBatis中的二级缓存
1. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper都有一个二级缓存,也就是说,不同的mapper之间的二级缓存是互不影响的.为了更加 ...
- 【MyBatis学习13】MyBatis中的二级缓存
1. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper都有一个二级缓存,也就是说,不同的mapper之间的二级缓存是互不影响的.为了更加 ...
- MyBatis中的二级缓存
MyBatis中的二级缓存 1. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper都有一个二级缓存,也就是说,不同的mapper之间的二 ...
- Mybatis自定义分布式二级缓存实现与遇到的一些问题解决方案!
Mybatis自定义分布式二级缓存实现与遇到的一些问题解决方案! 参考文章: (1)Mybatis自定义分布式二级缓存实现与遇到的一些问题解决方案! (2)https://www.cnblogs.co ...
- mybatis ehcache二级缓存命中率为0的原因,以及一级缓存与二级缓存之间的顺序
一级缓存针对SqlSession进行缓存 二级缓存针对mapper进行缓存,不管是不是相同的session,只要mapper的namespace相同,就会共享缓存 那么在同一个session下,执行同 ...
- Mybatis3.4.x技术内幕(二十二):Mybatis一级、二级缓存原理分析
2019独角兽企业重金招聘Python工程师标准>>> Mybatis的一级缓存,指的是SqlSession级别的缓存,默认开启:Mybatis的二级缓存,指的是SqlSession ...
- mybatis学习(46):二级缓存被刷新的情况
目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; im ...
- mybatis学习(44):二级缓存1
目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; im ...
最新文章
- 最新!这所顶尖大学录取线全国第三!毕业生深造率超九成!
- Unix高级环境编程 学习小结(一)
- 隐马尔科夫模型 概念(上)
- 数组的定义格式三_省略的静态初始化
- 记一次某APK的恶意WIFI攻击
- 使用PowerShell和T-SQL在多服务器环境中规划SQL Server备份和还原策略
- 从在浏览器中输入URL到页面渲染出来的完整过程是怎样的?
- Spring Cloud 微服务的那点事
- Google安全团队对Android安全的认识
- 翻译:MySQL Got an Error Reading Communication Packet Errors
- 【北京迅为】i.MX6ULL终结者RS232驱动测试RS485测试
- RT-Thread在正点原子Apollo上为 QSPI FLASH W25Q256移植FATFS文件系统
- 上传文件,路径为C:\fakepath\的问题(待跟进)
- 区块链专利申请量断崖式下降:阿里腾讯跌出十强 网心逆市晋身前四
- 中华石杉Java面试突击第一季笔记二(分布式搜索引擎)
- 基本农田卫星地图查询_谷歌地图打不开?试试这个替代网站,街景功能很好用!...
- matlab sym是什么意思,SYM是什么意思 sym是什么意思
- 文科生学大数据分析吃力吗
- Hadoop3.2.1 RPC通讯 一锅端
- oraoledb.oracle.11,Oracle11g链接提示未“在本地计算机注册“OraOLEDB.Oracle”解决方法...
热门文章
- Android:你不知道的 WebView 使用漏洞
- 自己动手调试Android源码(超简单)
- Android Context getSystemService分析
- Xposed源码剖析——hook具体实现
- 优秀的API接口设计原则及方法
- androidstudio sqlite where 条件_SQL 面试题:WHERE 和 HAVING、ON 有什么区别?
- 架空输电线路运行规程_架空输电线路杆塔金具的种类
- python网络通信的几种方式_python网络-计算机网络基础(23)
- mysql查询条数为零_mysql 查询每个月发布的文章数。月份无数据显示为0。如何写SQL呢...
- cc压力测试_斯坦福大学鲍哲南院士AFM综述:教你如何设计压力传感器的微结构...