码迷,mamicode.com
首页 > 其他好文 > 详细

MyBatis的一级缓存和二级缓存

时间:2019-03-11 10:29:38      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:就是   --   map   失效   ESS   class   全局   方法   缓存   

一级缓存

是SqlSession级别的缓存,当使用了clearCache方法和,或者close方法的话,这个缓存失效,如果还有同样的查询,则还会发送一次查询

SqlSession session = SqlSessionFactoryUtil.getSession();
Emp emp = session.selectOne("queryEmpByNo", 7900);
System.out.println(emp);
Emp emp2 = session.selectOne("queryEmpByNo", 7900);
System.out.println(emp2);

二级缓存

二级缓存是跨sqlsession的缓存,就是mapper缓存,也就是说,如果前面执行了close方法,后一个SqlSession查询,是可以在SqlSession查询到的,但如果执行了cleaCache方法,则不行

步骤
  1. 需要在mybatis的核心配置文件(mybatis-config.xml)

    <!-- 开启全局二级缓存 -->
    <setting name="cacheEnabled" value="true"/>
  2. 在mapper.xml文件里也要开启缓存

    <!--开启缓存-->
    <cache/>
  3. 实体类要支持序列化,也就是实现Serializable接口

SqlSession session = SqlSessionFactoryUtil.getSession();
Emp emp = session.selectOne("queryEmpByNo", 7900);
System.out.println(emp);
session.close();
session = SqlSessionFactoryUtil.getSession();
Emp emp2 = session.selectOne("queryEmpByNo", 7900);
System.out.println(emp2);

MyBatis的一级缓存和二级缓存

标签:就是   --   map   失效   ESS   class   全局   方法   缓存   

原文地址:https://www.cnblogs.com/jintangc/p/10508943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!