当前位置: 首页> 游戏> 评测 > 搭建农村电商平台_长沙营业执照代办的正规机构_seo日常工作内容_网站策划运营

搭建农村电商平台_长沙营业执照代办的正规机构_seo日常工作内容_网站策划运营

时间:2025/7/11 4:41:46来源:https://blog.csdn.net/m0_63197684/article/details/144894288 浏览次数:0次
搭建农村电商平台_长沙营业执照代办的正规机构_seo日常工作内容_网站策划运营

Mybatis的一级缓存

一级缓存是sqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问

使一级缓存失效的四种情况:

  1. 不同的SqlSession对应不同的一级缓存
  2. 同一个SqlSession但是查询条件不同
  3. 同一个SqlSession两次查询期间执行了任何一次增删改操作
  4. 同一个SqlSession两次查询期间手动清空了缓存
SqlSession session = sqlSessionFactory.openSession();// 第一次查询,缓存为空
User user1 = session.selectOne("com.example.UserMapper.selectUserById", 1);// 第二次查询,缓存命中
User user2 = session.selectOne("com.example.UserMapper.selectUserById", 1);// 此时 user1 和 user2 引用的是相同的对象,因为一级缓存命中
assert user1 == user2;session.close();  // 关闭后一级缓存失效

 

Mybatis的二级缓存

二级缓存是SqlSessionFactory级别,通过同一个SqlSessionFactory创建的SqlSession查询结果会被缓存;此后若再执行相同的查询语句,结果就会从缓存中获取

二级缓存开启的条件:

  1. 在核心配置文件中,设置全局配置属性cacheEnable=”true”,默认为true,不需要设置
  2. 在映射文件中设置标签<cache/>
  3. 二级缓存必须在SqlSession关闭或提交之后有效
  4. 查询的数据所转换的实体类必须实现序列化的接口

使二级缓存失效的情况:

两次查询之间执行了任意的增删改,会使一级和二级缓存同时失效

全局配置

<configuration><!-- 启用二级缓存 --><settings><setting name="cacheEnabled" value="true"/></settings>
</configuration>

mapper配置

<mapper namespace="com.example.UserMapper"><!-- 启用二级缓存 --><cache/><!-- SQL 映射 --><select id="selectUserById" resultType="User">SELECT * FROM users WHERE id = #{id}</select>
</mapper>

总结

一级缓存:作用于同一个 SqlSession,默认启用,简单有效。

二级缓存:作用于整个 Mapper,跨 SqlSession 共享缓存,需要手动启用。

缓存的优势:减少数据库访问次数,提升查询效率。

缓存的使用:合理配置缓存策略,确保数据的一致性和及时更新。

 

 

 

关键字:搭建农村电商平台_长沙营业执照代办的正规机构_seo日常工作内容_网站策划运营

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: