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);
    
  • 相关阅读:
    字符串方法
    文件上传路径转虚拟路径
    表结构转excel
    @ModelAttribute
    select
    查询详情在模态框展示
    时间
    mybatis一对多
    bootstrap tab页
    为什么不建议使用WordPress呢?
  • 原文地址:https://www.cnblogs.com/jintangc/p/10508943.html
Copyright © 2011-2022 走看看