mybatis 3.x 缓存Cache的使用
mybatis 3.x 已经支持cache功能了,使用很简单,在mappper的xml文件里添加以下节点:
1 <mapper namespace="com.cnblogs.yjmyzz.mybatis.mapper.OrderMapper"> 2 3 <cache 4 eviction="LRU" 5 flushInterval="60000" 6 size="1024" 7 readOnly="true" 8 /> 9 ... 10 </mapper>
这里有几个要注意的地方:
eviction是缓存的淘汰算法,可选值有"LRU"、"FIFO"、"SOFT"、"WEAK",缺省值是LRU
flashInterval指缓存过期时间,单位为毫秒,60000即为60秒,缺省值为空,即只要容量足够,永不过期
size指缓存多少个对象,默认值为1024
readOnly是否只读,如果为true,则所有相同的sql语句返回的是同一个对象(有助于提高性能,但并发操作同一条数据时,可能不安全),如果设置为false,则相同的sql,后面访问的是cache的clone副本。
上面这个是全局设置,在每条单独的sql语句上,还可以有局部设置,比如:
<select id="getOrder" parameterType="int" resultType="TOrder" useCache="false">...</select>
useCache="false"表示该select语句不使用缓存(即使xml最开头的全局cache启用)
默认情况下,如果全局开启了缓存,insert/update/delete成功后,会自动刷新相关的缓存项,但有一点要特别注意:在mybatis与hibernate混用时,由于mybatis与hibernate的缓存是无关的,如果用mybatis做select查询,用hibernate做insert/update/delete,hibernate对数据的修改,并不会刷新mybatis的缓存。
mybatis 3.x 缓存Cache的使用相关推荐
- Mybatis集成二级缓存与同时使用缓存与事务存在的坑
今天在看分布式事务的时候,突然收到app不能签到的消息,赶紧解决. 具体解决方法: 1.把执行错误的处理方法提取出来,作为测试方法 2.这个方法里面有两个插入语句,一条查询语句,一个更新语句,涉及到三 ...
- 《深入理解mybatis原理》 MyBatis的一级缓存实现详解 及使用注意事项
MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓存机制上.MyBatis提供了一级缓存.二级缓存 这两个缓存机制,能够很好地处理和维护缓存,以提高系统的性能.本 ...
- mybatis 创建session, 缓存, 执行SQL
案例代码, 上一个博客已经分析了 SqlSessionFactory 的 build , 本文内容部分知识基于上篇的文章 mybatis 的初始化, build 这节我们分析, 开启session, ...
- Mybatis中的缓存
Mybatis中的缓存 什么是缓存 存在于内存中的临时数据. 为什么使用缓存 减少和数据库的交互次数,提高执行效率. 什么样的数据能使用缓存,什么样的数据不能使用 适用于缓存: 经常查询并且不经常改变 ...
- mybatis教程--查询缓存(一级缓存二级缓存和整合ehcache)
查询缓存 1 缓存的意义 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题. 2 mybat ...
- 【学习笔记】mybatis中的缓存介绍和使用
文章目录 介绍 一级缓存和二级缓存 让一级缓存失效的方法 二级缓存的使用 清空或者跳过二级缓存的3种方式 介绍 什么是缓存? 缓存就是存储数据的一个地方(称作:Cache),当程序要读取数据时,会首先 ...
- 浅谈Mybatis的一级缓存和二级缓存
MyBatis的缓存机制 缓存的引入 当我们大量执行重复的查询SQL语句的时候,会频繁的和数据库进行通信,会增加查询时间等影响用户体验的问题,可以通过缓存,以降低网络流量,使网站加载速度更快. MyB ...
- mybatis的二级缓存
二级缓存是mapper映射级别的缓存,多个SqlSession去操作同一个Mapper映射的sql语句,多个SqlSession可以共用二级缓存, 二级缓存是跨SqlSession的. 二级缓存结构图 ...
- springboot+mybatis集成自定义缓存ehcache用法笔记
今天小编给大家整理了springboot+mybatis集成自定义缓存ehcache用法笔记,希望对大家能有所办帮助! 一.ehcache介绍 EhCache 是一个纯Java的进程内缓存管理框架,属 ...
- MyBatis(延迟加载 缓存)
mybatis目录 一对一延迟加载 1.在SqlMapConfig.xml中配置setting标签 2.在IAccoutDao.xml中配置association标签 3.测试类 4.成功运行 一对多 ...
最新文章
- Python 基础 - Day 5 Assignment - ATM
- hide subscribers is a good approach if you have a very limited subscribers
- hdu 5185(dp)
- NYOJ 451(组合数+全错位)
- 《R语言数据分析与挖掘实战》——3.2 数据特征分析
- 力扣332. 重新安排行程(JavaScript)
- 《恋上数据结构第1季》动态数组实现栈
- HotSpot VM运行时02---VM生命周期
- [转]在ubuntu下安装sublime text
- 通信维修专用电源_万可PRO 2电源 | 开拓性通信功能,自信迈入数字化时代
- android 带边框的arc,极细边框(1px边框)实现方式
- Xcode打包ipa的基本步骤
- 低功耗视频解码芯片-TVP5150
- java中dao_java中的Dao类是什么意思?
- 动态优化模型/ 变分法:泛函、极值、变分
- java h5在线音频_html5 mp3音频播放代码网页在线录音
- 计算机均价的公式,【转】二手笔记本电脑的价格计算方法和举例
- JS 四舍五入保留两位小数
- 工程流体力学笔记暂记16(欧拉积分和伯努利积分)
- python大数据毕业设计题目100例
热门文章
- sCrypt 合约中的椭圆曲线算法:第二部分
- 计算机在智能制造专业中的应用,数控技术在智能制造中的应用及发展分析
- cp: omitting directory
- Python/Matplotlib实现雨点图动画
- Linux系统安装,教你安装一个属于自己的Linux系统
- OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading “D:\Anaconda\envs\pytorch-1.4\lib\site-package
- Predicting Semantic Map Representations from Images using Pyramid Occupancy Networks 翻译
- do还是doing imagine加to_“imagine to do”与“imagine doing”的区别是什么?
- 史上最搞笑的程序员段子,有图有真相!
- Nodejs—即时通讯