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的使用相关推荐

  1. Mybatis集成二级缓存与同时使用缓存与事务存在的坑

    今天在看分布式事务的时候,突然收到app不能签到的消息,赶紧解决. 具体解决方法: 1.把执行错误的处理方法提取出来,作为测试方法 2.这个方法里面有两个插入语句,一条查询语句,一个更新语句,涉及到三 ...

  2. 《深入理解mybatis原理》 MyBatis的一级缓存实现详解 及使用注意事项

    MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓存机制上.MyBatis提供了一级缓存.二级缓存 这两个缓存机制,能够很好地处理和维护缓存,以提高系统的性能.本 ...

  3. mybatis 创建session, 缓存, 执行SQL

    案例代码, 上一个博客已经分析了 SqlSessionFactory 的 build , 本文内容部分知识基于上篇的文章 mybatis 的初始化, build 这节我们分析, 开启session, ...

  4. Mybatis中的缓存

    Mybatis中的缓存 什么是缓存 存在于内存中的临时数据. 为什么使用缓存 减少和数据库的交互次数,提高执行效率. 什么样的数据能使用缓存,什么样的数据不能使用 适用于缓存: 经常查询并且不经常改变 ...

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

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

  6. 【学习笔记】mybatis中的缓存介绍和使用

    文章目录 介绍 一级缓存和二级缓存 让一级缓存失效的方法 二级缓存的使用 清空或者跳过二级缓存的3种方式 介绍 什么是缓存? 缓存就是存储数据的一个地方(称作:Cache),当程序要读取数据时,会首先 ...

  7. 浅谈Mybatis的一级缓存和二级缓存

    MyBatis的缓存机制 缓存的引入 当我们大量执行重复的查询SQL语句的时候,会频繁的和数据库进行通信,会增加查询时间等影响用户体验的问题,可以通过缓存,以降低网络流量,使网站加载速度更快. MyB ...

  8. mybatis的二级缓存

    二级缓存是mapper映射级别的缓存,多个SqlSession去操作同一个Mapper映射的sql语句,多个SqlSession可以共用二级缓存, 二级缓存是跨SqlSession的. 二级缓存结构图 ...

  9. springboot+mybatis集成自定义缓存ehcache用法笔记

    今天小编给大家整理了springboot+mybatis集成自定义缓存ehcache用法笔记,希望对大家能有所办帮助! 一.ehcache介绍 EhCache 是一个纯Java的进程内缓存管理框架,属 ...

  10. MyBatis(延迟加载 缓存)

    mybatis目录 一对一延迟加载 1.在SqlMapConfig.xml中配置setting标签 2.在IAccoutDao.xml中配置association标签 3.测试类 4.成功运行 一对多 ...

最新文章

  1. Python 基础 - Day 5 Assignment - ATM
  2. hide subscribers is a good approach if you have a very limited subscribers
  3. hdu 5185(dp)
  4. NYOJ 451(组合数+全错位)
  5. 《R语言数据分析与挖掘实战》——3.2 数据特征分析
  6. 力扣332. 重新安排行程(JavaScript)
  7. 《恋上数据结构第1季》动态数组实现栈
  8. HotSpot VM运行时02---VM生命周期
  9. [转]在ubuntu下安装sublime text
  10. 通信维修专用电源_万可PRO 2电源 | 开拓性通信功能,自信迈入数字化时代
  11. android 带边框的arc,极细边框(1px边框)实现方式
  12. Xcode打包ipa的基本步骤
  13. 低功耗视频解码芯片-TVP5150
  14. java中dao_java中的Dao类是什么意思?
  15. 动态优化模型/ 变分法:泛函、极值、变分
  16. java h5在线音频_html5 mp3音频播放代码网页在线录音
  17. 计算机均价的公式,【转】二手笔记本电脑的价格计算方法和举例
  18. JS 四舍五入保留两位小数
  19. 工程流体力学笔记暂记16(欧拉积分和伯努利积分)
  20. python大数据毕业设计题目100例

热门文章

  1. sCrypt 合约中的椭圆曲线算法:第二部分
  2. 计算机在智能制造专业中的应用,数控技术在智能制造中的应用及发展分析
  3. cp: omitting directory
  4. Python/Matplotlib实现雨点图动画
  5. Linux系统安装,教你安装一个属于自己的Linux系统
  6. OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading “D:\Anaconda\envs\pytorch-1.4\lib\site-package
  7. Predicting Semantic Map Representations from Images using Pyramid Occupancy Networks 翻译
  8. do还是doing imagine加to_“imagine to do”与“imagine doing”的区别是什么?
  9. 史上最搞笑的程序员段子,有图有真相!
  10. Nodejs—即时通讯