绵阳市建设银行网站,seo外贸网站建设,建筑网建设通查询,苍南县网站集约化建设文章目录 一、MyBatis的一级缓存二、MyBatis的二级缓存三、MyBatis缓存查询的顺序 一、MyBatis的一级缓存
一级缓存是SqlSession级别的#xff0c;通过同一个SqlSession查询的数据会被缓存#xff0c;下次查询相同的数据#xff0c;就 会从缓存中直接获取#xff0c;不会从… 文章目录 一、MyBatis的一级缓存二、MyBatis的二级缓存三、MyBatis缓存查询的顺序 一、MyBatis的一级缓存
一级缓存是SqlSession级别的通过同一个SqlSession查询的数据会被缓存下次查询相同的数据就 会从缓存中直接获取不会从数据库重新访问 使一级缓存失效的四种情况
不同的SqlSession对应不同的一级缓存同一个SqlSession但是查询条件不同同一个SqlSession两次查询期间执行了任何一次增删改操作同一个SqlSession两次查询期间手动清空了缓存
二、MyBatis的二级缓存
二级缓存是SqlSessionFactory级别通过同一个SqlSessionFactory创建的SqlSession查询的结果会被 缓存此后若再次执行相同的查询语句结果就会从缓存中获取 二级缓存开启的条件 a在核心配置文件中设置全局配置属性cacheEnabled“true”默认为true不需要设置 b在映射文件中设置标签 c二级缓存必须在SqlSession关闭或提交之后有效 d查询的数据所转换的实体类类型必须实现序列化的接口 使二级缓存失效的情况 两次查询之间执行了任意的增删改会使一级和二级缓存同时失效
三、MyBatis缓存查询的顺序
先查询二级缓存因为二级缓存中可能会有其他程序已经查出来的数据可以拿来直接使用。 如果二级缓存没有命中再查询一级缓存 如果一级缓存也没有命中则查询数据库 SqlSession关闭之后一级缓存中的数据会写入二级缓存