Mybatis-缓存


MyBatis缓存


(1)一级缓存


  • 1.查询两次相同的数据

测试:

    @Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        
        User user = mapper.getUserById(2);
        System.out.println(user);
        System.out.println("===============================");
        User user2=mapper.getUserById(2);
        System.out.println(user2);

        sqlSession.close();
    }
}

日志分析:

  • 2.缓存失效的情况

增删改操作可能会改变原理啊的数据,所以增删改之后会刷新数据

  • 3.手动清理缓存
@Test
    public void test(){
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);

        User user = mapper.getUserById(2);
        System.out.println(user);

        sqlSession.clearCache();//手动清理缓存

        User user2=mapper.getUserById(2);
        System.out.println(user2);

        sqlSession.close();
    }

(2)二级缓存


  • 步骤:

  • 测试:

  • 报错:

  • 一些序列化的解释:


(3)缓存原理


(4)自定义缓存ehcache(了解即可)


posted @ 2021-12-24 13:31  卡卡发  阅读(53)  评论(0)    收藏  举报