Mybatis Cache(一级缓存、二级缓存)

对于每次查询,先去缓存中找数据,如果在缓存中,直接从缓存中取数据;如果不在缓存中,从数据库取数据,并将数据存入缓存。可以大幅提高性能。

1. 一级缓存

  一级缓存是SqlSession级别的缓存。一个sqlSession对象,维护一个缓存(HashMap),不同的sqlSession之间的缓存互相独立。

  当一个sqlSession结束后,对应的一级缓存就失效了。

       Mybatis默认开启一级缓存。

2. 二级缓存

  二级缓存是Mapper级别的缓存,多个sqlSession共享一个二级缓存,二级缓存是跨SqlSession的。

      多个sqlSession去操作同一个mapper的sql语句,数据存入二级缓存。

    Mybatis默认没有开启二级缓存,需要在setting全局参数中配置开启。


猜你喜欢

转载自blog.csdn.net/android_bar/article/details/78282072