当前位置: 首页> 科技> 名企 > 客源汇软件效果怎么样_随州网站设计开发方案_百度灰色关键词排名技术_网络营销技巧和营销方法

客源汇软件效果怎么样_随州网站设计开发方案_百度灰色关键词排名技术_网络营销技巧和营销方法

时间:2025/7/11 23:31:46来源:https://blog.csdn.net/wang121213145/article/details/146773559 浏览次数:0次
客源汇软件效果怎么样_随州网站设计开发方案_百度灰色关键词排名技术_网络营销技巧和营销方法

MyBatis 确实内置了缓存功能,但默认的开启情况取决于缓存级别:

一级缓存(本地缓存)

默认状态:自动开启(无法全局关闭)

范围:SqlSession 级别(同一个 SqlSession 内有效)

特性

同一个 SqlSession 中相同的查询会直接从缓存返回结果

执行 INSERT/UPDATE/DELETE 或调用 clearCache() 会清空缓存

事务提交或回滚也会清空缓存

二级缓存(全局缓存)

默认状态:关闭,需要手动配置开启

范围:Mapper 命名空间级别(跨 SqlSession 共享)

开启方式

<!-- 在 mybatis-config.xml 中 -->
<settings><setting name="cacheEnabled" value="true"/> <!-- 默认就是 true -->
</settings><!-- 在具体 Mapper.xml 中 -->
<mapper namespace="..."><cache/> <!-- 显式声明才启用二级缓存 -->
</mapper>

缓存验证方法

验证一级缓存

// 第一次查询(访问数据库)
User user1 = sqlSession.selectOne("getUser", 1);
// 第二次相同查询(从一级缓存获取)
User user2 = sqlSession.selectOne("getUser", 1);
System.out.println(user1 == user2); // 输出 true 表示缓存生效

验证二级缓存


// 第一个 SqlSession
User user1 = sqlSession1.selectOne("getUser", 1);
sqlSession1.close(); // 必须关闭才会存入二级缓存// 第二个 SqlSession
User user2 = sqlSession2.selectOne("getUser", 1);
System.out.println(user1 == user2); // 输出 false(不是同一对象)
// 但实际不会访问数据库(查看日志确认)

缓存问题排查
如果遇到查询结果与数据库不一致:

检查是否开启了二级缓存(查看 Mapper.xml)

在查询方法上添加 flushCache 属性临时禁用缓存:

<select id="getUser" resultType="User" flushCache="true">SELECT * FROM user WHERE id = #{id}
</select>

查看 MyBatis 执行日志确认是否真正访问了数据库

注意:在读写分离或多数据源环境下,缓存可能导致更复杂的一致性问题,需要特别注意。

关键字:客源汇软件效果怎么样_随州网站设计开发方案_百度灰色关键词排名技术_网络营销技巧和营销方法

版权声明:

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

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

责任编辑: