Mybatis缓存机制

1.ORM映射:将数据库中的一条语句映射到Java对象。

2.MyBatis缓存机制:执行查询语句时候,将查询结果放到缓存当中(内存),如果下一次还是执行完全相同的查询语句,直接从缓存中拿数据。不再查数据库。不再去硬盘上找数据。目的是为了提高效率,通过减少IO的方式提高效率。

3.缓存指针对查询语句进行缓存,包括

一级缓存 查询到的数据存储到SqlSession中,只针对当前的一次会话,缓存范围小。

二级缓存 查询到的数据存储到SqlSessionFactory中,一个数据库连接只有一个SqlSessionFactory,缓存范围较大。

或集成其他第三方的缓存,EhCache

4.一级缓存是默认开启的,不需要任何配置,只要使用同一个SqlSession对象执行同一条SQL语句,就会走缓存。

  SqlSession对象不一样,不走缓存,查询条件不一样也不走缓存。

  在两次相同的查询语句之间执行delete update insert语句,即使不是对同一张表操作也清空缓存,执行sqlSession.clearcache()语句不走缓存

5.二级缓存

  要想使用二级缓存,四个条件缺一不可。

 1.<setting name="cacheEnable" value="true">全局性地开启或关闭所有映射配置文件中已配置的任何缓存,默认是true,无需设置

  2.二级缓存默认是开启的,只需要在sqlMapper.xml文件中添加<cache/>标签,用来表示使用二级缓存。

  3.使用二级缓存的实体类对象必须是可序列化的,也就是必须实现Serializable接口

  4.SqlSession对象关闭或提交之后,一级缓存中的数据才会被写入二级缓存,此时二级缓存才可用。

posted on 2023-05-07 18:07  啥123  阅读(23)  评论(0编辑  收藏  举报