为何禁用MyBatis缓存

为何禁用MyBatis缓存privatevoidputAncestor(CacheKeyrowKey,ObjectresultObject,StringresultMapId,StringcolumnPrefix){if(!ancestorColumnPrefix.containsKey(resultMapId)){ancestorColumnPrefix.put(resul

大家好,又见面了,我是你们的朋友全栈君。

private void putAncestor(CacheKey rowKey, Object resultObject, String resultMapId, String columnPrefix) {
    if (!ancestorColumnPrefix.containsKey(resultMapId)) {
      ancestorColumnPrefix.put(resultMapId, columnPrefix);
    }
    ancestorObjects.put(rowKey, resultObject);
  }


if (combinedKey != CacheKey.NULL_CACHE_KEY) nestedResultObjects.put(combinedKey, resultObject);


mybatis 缓存的是对象,是数据库resultSet经过DefaultResultSetHandler 处理后生成的java对象。

 这样 缓存意义不大是在于:

(1)对于电子商务网址具有一定规模的数据量,内置的cache方式就派不上用场了;缓存对象无意义,为何Memcached,redis支持那么多缓存类型,而不支持单一类型。
(2)对查询结果集做缓存并不是MyBatis框架擅长的,它专心做的应该是sql mapper 这个特性。采用此框架的Application去构建缓存更合理,比如采用redis、memcached。

 所以,我们用mybatis就是为了方便结果集到对象的映射功能。

禁用缓存配置:

<configuration>
	<settings>
		<setting name="cacheEnabled" value="false"/>
		<setting name="localCacheScope" value="STATEMENT"/>
		<setting name="jdbcTypeForNull" value="NULL"/>
	</settings>

	<mappers>
		<mapper resource=""/>
	</mappers>

</configuration>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145148.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 系统日志查看journalctl命令详解

    系统日志查看journalctl命令详解简介从2012年开始,大部分linux发行版本开始从传统的systemv初始化系统移植到一个叫做systemd的全新系统。systemd用来启动系统并管理进程。systemd包含了一个叫做journalctl的辅助组件,其主要作用是管理系统的事件日志记录。journalctl可以查看所有的系统日志文件,由于日志信息量很大,journalctl还提供了各种参数帮助用户更快速的定位到日志信息。默认情况下,用户都可以访问自己的日志。对于系统主日志和其他用户的日志,仅限于有权限的用户访问,比如root用户,

    2022年5月10日
    40
  • tkMapper的使用[通俗易懂]

    tkMapper的使用[通俗易懂]Maven引入<dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.1.5</version></dependency>…

    2022年10月7日
    3
  • ireport连接oracle_sqlserver导入数据库

    ireport连接oracle_sqlserver导入数据库一:添加jdbc或者odbcjar包工具–>选项–>Classpath–>AddJAR二:创建数据库链接方式ReportDatasouces–>new–>DatabaseJDBCconnection填写对应的数据库信息test成功!最后save就ok了。…

    2022年9月10日
    3
  • 大数据精准营销的网络营销策略研究_指南针的使用

    大数据精准营销的网络营销策略研究_指南针的使用互联网时代,也是一个数据大爆炸的时代,很多人通过网络营销,却忽略了一个重要的基础,那就是数据,而以各种各样数据为基础的互联网营销,需要的是一种大数据营销的思维,这种思维对于提升营销的质量和成功率都有极大的帮助。何为大数据营销,那么它又和网络营销的有何关联呢?其实大数据营销并不是一个复杂的概念,指的是通过所针对的目标的各种数据的变化和分析,来获得营销方向的指导,这种数据通过表格、文字等形式表现出来,…

    2022年9月26日
    0
  • shell 格式化json(python json.loads)

    LINUXSHELL解析JSON格式1.使用工具jqhttps://stedolan.github.io/jq/下载版本linux版本jq-linux64Ubuntu直接sudoapt-getinstalljq即可。2.解析json[root@casscript]#cattest.json{“tasks”:[{“id”:”simpletour-wechat.a17506e7

    2022年4月17日
    71
  • C++面向对象程序设计_面向对象程序设计的基本机制是

    C++面向对象程序设计_面向对象程序设计的基本机制是一、面向过程和面向对象的区别。面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为二、面向过程和面向对象的特征。面向过程是把过程作为编程的思路,如程序流程图,但是面向对象是把实体当作对象,如自行车是一个实体,就…

    2022年8月18日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号