zoukankan      html  css  js  c++  java
  • MyBatis的一级缓存和二级缓存

    一级缓存

    是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);
    
  • 相关阅读:
    转:C++ 智能指针的正确使用方式
    C/C++各个周期的学习
    转: 工作中用的C++库
    转:【软件设计】深入理解日志系统的意义
    初级爬虫第四天
    初级爬虫第三天
    初级爬虫第二天
    初级爬虫第一天
    pep8介绍
    MySQL训练营01
  • 原文地址:https://www.cnblogs.com/jintangc/p/10508943.html
Copyright © 2011-2022 走看看