首页 > 其他 > 详细

mybatis的一级缓存和二级缓存

时间:2020-07-19 12:04:03      阅读:24      评论:0      收藏:0      [点我收藏+]

一、
一级缓存:它指的是mybatis的sqlsession对象缓存。
当我们执行查询之后,查询的结果会同时存入到sqlsession为我们提供的一块区域中.
该区域的结构是一个Map,当我们再次查询同样的数据,mybatis会首先去sqlssion缓存中查找是否有该数据,有的话直接获取

二、解析一级缓存
第一次发起查询用户 id 为 1 的用户信息,先去找缓存中是否有 id 为 1 的用户信息,如果没有,从数据库查 询用户信息。
得到用户信息,将用户信息存储到一级缓存中。
如果 sqlSession 去执行 commit 操作(执行插入、更新、删除),清空 SqlSession 中的一级缓存,这样 做的目的为了让缓存中存储的是最新的信息,避免脏读。

第二次发起查询用户 id 为 1 的用户信息,先去找缓存中是否有 id 为 1 的用户信息,缓存中有,直接从缓存 中获取用户信息

三、
二级缓存:它指的是Mybatis中的sqlsessionFactory对象缓存,有同一个sqlsessionFactory对象创建的sqlsession共享其缓存

四、二级缓存的实现步骤

  1:第一步:在 SqlMapConfig.xml 文件开启二级缓存(在SqlMapConfig.xml中配置) 
  2:第二步:让当前映射文件支持二级缓存(在UserDao.xml中配置) 
  3:第三步:让当前操作支持二级缓存(在select标签中配置)

mybatis的一级缓存和二级缓存

原文:https://www.cnblogs.com/jock766/p/13338465.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!