zoukankan      html  css  js  c++  java
  • 【MyBatis】一级缓存和二级缓存及其原理

    一、一级缓存(SqlSession)(本地会话)

    一级缓存默认开启的 在一次sqlSession中有效

    1.查询同一个用户

     2.查询用户A 更新其他用户B 再次查询用户A

     

     每次进行DML语句(增删改)都会刷新缓存。

    3.手动清除缓存

    二、二级缓存(全局缓存)

    在对象的mapper映射文件里面写 下面这个语句

     

     我们选用的是这个方法 用老师ID获得老师信息的方法

     测试方法代码如下

    public void testcacheTest()
        {
            //sqlSession1 的会话进行第一次查询。查询后一级缓存存入二级缓存后失效 
            SqlSession sqlSession1=MybatisUtils.getSqlSession();
            TeacherMapper teacherMapper=sqlSession1.getMapper(TeacherMapper.class);
            Teacher t1=teacherMapper.getTeacherById(1);
            System.out.println(t1);
            sqlSession1.close();
            
            //新建sqlSession2进行查询 如果在二级缓存命中则不需要连接JDBC进行查询
            System.out.println("================================");
            SqlSession sqlSession2=MybatisUtils.getSqlSession();
            TeacherMapper teacherMapper2=sqlSession2.getMapper(TeacherMapper.class);
            Teacher t2=teacherMapper2.getTeacherById(1);
            System.out.println(t2);
            sqlSession1.close();
            
            //查看t1 t2是否一直
            System.out.println("=======================================");
            System.out.println(t1==t2);
    
        }

    查看日志

     

  • 相关阅读:
    redis info详解
    redis数据类型-有序集合
    redis数据类型-集合类型
    redis数据类型-列表类型
    python——井字小游戏
    python——元组和字典学习笔记
    docker学习笔记
    中型公司网络架构拓扑与详解
    python——将图片转换为字符编码(linux版的)
    python——冒泡排序练习
  • 原文地址:https://www.cnblogs.com/cckong/p/14342105.html
Copyright © 2011-2022 走看看