二级缓存

开启全局二级缓存

 <setting name="cacheEnabled" value="true"/>

去mapper.xml中配置使用二级缓存

<cache></cache>
<cache eviction="FIFO" flushInterval="60000" readOnly="false" size="1024" ></cache>
  • cache中的配置

  • type = “”:指定自定义缓存的全类名;实现Cache接口即可;

我们的POJO需要实现序列化接口

测试

@Testpublic void testSecondLevelCache() throws IOException {SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();SqlSession sqlSession = sqlSessionFactory.openSession();SqlSession sqlSession1 =   sqlSessionFactory.openSession();try{EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);EmployeeMapper mapper1 = sqlSession1.getMapper(EmployeeMapper.class);Employee emp01 = mapper.getEmpById(1);System.out.println(emp01);sqlSession.close();Employee emp02 = mapper1.getEmpById(1);System.out.println(emp02);sqlSession1.close();}finally {sqlSession.close();}}

  • 二级缓存失效

只有会话提交或者关闭以后,一级缓存中的数据才会转移到二级缓存中

  @Testpublic void testSecondLevelCache() throws IOException {SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();SqlSession sqlSession = sqlSessionFactory.openSession();SqlSession sqlSession1 =   sqlSessionFactory.openSession();try{EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);EmployeeMapper mapper1 = sqlSession1.getMapper(EmployeeMapper.class);Employee emp01 = mapper.getEmpById(1);System.out.println(emp01);Employee emp02 = mapper1.getEmpById(1);System.out.println(emp02);sqlSession.close();sqlSession1.close();}finally {}}

[mybatis]缓存_二级缓存使用细节相关推荐

  1. mybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存

    设置延迟加载需要在mybatis.xml中设置 注: 侵入式延迟加载为真时是延迟加载 侵入式延迟加载为假时是深度延迟加载 <!-- 延迟加载和深度延迟加载 --><settings& ...

  2. java mysql 二级缓存_深入理解MyBatis中的一级缓存与二级缓存

    http://blog.csdn.net/weixin_36380516/article/details/73194758 先说缓存,合理使用缓存是优化中最常见的,将从数据库中查询出来的数据放入缓存中 ...

  3. MyBatis缓存和二级缓存整合Redis

    MyBatis缓存和二级缓存整合Redis ⼀级缓存 缓存验证 在⼀个sqlSession中,对user表根据username进⾏两次查询,查看他们发出sql语句的情况 同样是对user表进⾏两次查询 ...

  4. 【MyBatis学习13】MyBatis中的二级缓存

    1. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper都有一个二级缓存,也就是说,不同的mapper之间的二级缓存是互不影响的.为了更加 ...

  5. Mybatis一级缓存,二级缓存的实现就是这么简单

    介绍 又到了一年面试季,所以打算写一点面试常问的东西,争取说的通俗易懂.面试高级岗,如果你说熟悉Mybatis,下面这些问题基本上都会问 Mybatis插件的实现原理? 如何写一个分页插件? Myba ...

  6. MyBatis框架:延迟加载策策略、一级缓存、二级缓存

    MyBatis框架:延迟加载策略和缓存 Mybatis 延迟加载策略 1.1 何为延迟加载? 1.2 实现需求 1.3 使用association实现延迟加载 1.3.1 账户的持久层DAO接口 1. ...

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

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

  8. MyBatis】MyBatis一级缓存和二级缓存

    转载自  MyBatis]MyBatis一级缓存和二级缓存 MyBatis自带的缓存有一级缓存和二级缓存 一级缓存 Mybatis的一级缓存是指Session缓存.一级缓存的作用域默认是一个SqlSe ...

  9. mybatis一级,二级缓存。缓存带来的脏读问题

    title 1. 关于缓存的介绍 2. 一级缓存,默认开启,session级别 3. 二级缓存,mapper 的namespace级别 1. 关于缓存的介绍 Mybatis一级缓存的作用域是同一个Sq ...

最新文章

  1. java 一次性输入与输出_Java入门——(7)IO(输入与输出)
  2. ES6 对象的新功能与解构赋值介绍
  3. 微信小程序_Bug解决_setData失效
  4. C++的一些知识点摘抄(创建基本类 高级类)
  5. react当中子组件改变父组件的状态
  6. 04Hadoop中的setPartitionerClass/SortComparator/GroupingComparator问题
  7. dibbler-server安装配置
  8. 电脑有回声_Soundop下载-Soundop正式电脑版
  9. python怎么读发音百度翻译-用python实现百度翻译的示例代码
  10. linux 查找并删除
  11. Linux虚拟文件系统(概述)
  12. php并发访问排队_使用xdebug对php做性能分析调优
  13. nokia n9 android 4.4,再现新神机 诺基亚N9运行Android4.1系统
  14. vue3.Vue实例
  15. 以Spring Boot的方式显示图片或下载文件到浏览器
  16. 微信公众平台菜单编辑php,Vue.js实现微信公众号菜单编辑器步骤详解(上)
  17. 使用Amazon SageMaker RL 和Unity训练强化学习智能体
  18. 南网优惠电费接口API源码
  19. 前端安全须知(淘宝)
  20. 心情好些了,发现自己还是适合专注科研

热门文章

  1. [转]面试官,不要再问我三次握手和四次挥手
  2. C#窗体的Load事件与Shown事件的区别
  3. C#子窗体运行时无法正常最大化的解决办法
  4. Java之Callable和Runnable
  5. Android之事件处理全面剖析
  6. 栈和队列之仅用递归函数和栈操作逆序一个栈
  7. 王道408数据结构——第三章 栈和队列
  8. modbus调试工具 linux,linux libmodbus的移植
  9. tensorflow去掉某一维度_在Python中解压缩(取消堆栈)一个输入(占位符),在tensorflow中有一个None维度...
  10. python运行时间过长怎么优化_Python性能优化的20条建议