茶杯熟了

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

关于mybatis的缓存机制

mybatis存在一级和二级缓存,

一级缓存默认是开启的属于sqlSession级别的缓存:

  sqlSession缓存是默认开启的,在一个sqlSession在使用select的时候会先从本地缓存中读,如果没有才会连接数据库查询相关的数据,然后将查询的数据放入本地缓存,以便下次select。只要事务不提交( 增删该等动作)或者没有sqlSession.close(), 执行查询条件相同的第二次查询,就直接从缓存中取,不发sql

二级缓存,默认关闭,只需要在springboot的配置文件中mybatis.configuration.cache-enable:true 即可

  mybatis的二级缓存是namespace级别的,就是同一Mapper下的多个sqlSession共享一个缓存。因此只要有一个sqlSession发出了一个查询,第二sqlSession发出同样的查询的话,是直接从二级缓存中取数据的。 

二级缓存默认不开启,如果要使用的话要在mybatis-config.xml的全局配置文件中开启,同时要在mapper 的sql映射文件中配置cache, 此外缓存的对象 必须 implments Serializable接口。

posted on 2018-09-03 17:41  茶杯熟了  阅读(102)  评论(0编辑  收藏  举报