转自:
Mybatis中的缓存相关简介说明
下文笔者讲述Mybatis缓存的相关简介说明,如下所示
缓存简介
在mybatis中将数据存储到内存中这种操作,我们称之为“缓存”
mybatis使用缓存的优点
使用缓存可减少同数据库的通信次数提高程序的效率,减少系统的开销
适用缓存的场景
适用于缓存:常查询并且不经常改变的并且数据的对错对业务影响不大不适用于缓存:经常变动的数据,数据对错对系统的影响非常大 如:商品库存、银行汇率、股市牌价-这种数据绝对不能缓存
Mybatis中一级缓存和二级缓存简介
一级缓存
指Mybatis中SqlSession对象的缓存 当我们执行查询之后,查询结果会同时存入到SqlSeesion为我们提供一块区域中该区域的结构是一个Map。当我们再次查询同样的数据,Mybatis会先去sqlseesion中查询是否存在,如果存在,则直接使用,当SqlSeesion对象消失时,Mybatis的一级缓存随即消失一级缓存是SqlSession范围的缓存当调用SqlSession的修改,添加,删除,commit(),close(),等方法时,都会清空一些缓存
二级缓存
二级缓存:是mapper级别的缓存多个SqlSession去操作同一个Mapper的sql语句多个SqlSession可以共用二级缓存,二级缓存是跨SqlSessionUserMapper有一个二级缓存区域(按namespace分)其它mapper也有自己的二级缓存区域(按namespace分)每一个namespace的mapper都有一个二级缓存区域,当两个mapper的namespace如果相同,这两个mapper执行sql查询到数据将存在相同的二级缓存区域中。
二级缓存
指Mybatis中SqlSession中SqlSessionFactory对象的缓存 由同一个SqlSessionFactory对象创建的SqlSession共享其缓存
二级缓存的使用步骤
步骤1:让Mybatis框架支持二级缓存(在SqlMapConfig.xml中配置)步骤2:让当前的映射文件支持二级缓存(在IUserDao.xml中配置)步骤3:让当前的操作支持二级缓存(在select标签中配置)