在分布式的环境中,mybatis的一二级缓存非常危险,二级缓存一定要关闭,一级缓存视情况关闭
一级缓存:
一级缓存的作用域默认是一个SqlSession。Mybatis默认开启一级缓存。
关闭或者使一级缓存失效的方法:
1、在mapper的select标签中设置statementType=STATEMENT
statementType的设置有3种:
STATEMENT:直接操作sql,不进行预编译,获取数据
PREPARED:(默认)预处理,参数,进行预编译,获取数据
CALLABLE:执行存储过程————CallableStatement
2、在mapper的select标签中设置flushCache=“true”
3、全局设置localCacheScope=STATEMENT

二级缓存:
二级缓存的作用域默认是为mapper(namespace)
关闭方法:在mybatis的配置文件中:

<configuration>
	<settings>
		<!-- 二级缓存开启 -->
		<setting name="cacheEnabled" value="false" />
	</settings>
</configuration>
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐