为何禁用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle 转number日期,oracle number型日期转date型日期

    oracle 转number日期,oracle number型日期转date型日期在搞数据库时,发现有这样的一个字段,类型是NUMBER(38),查看了一下里面的数据,都是这样的,1323957678114132132699429513221293068041322129716220猜到应该是1970年1月1号0点0分距现在的毫秒值。解决办法是写一个转换函数:createorreplacefunctionnum_to_date(in_numberNUMBER)ret…

    2022年7月24日
    51
  • Spark pool_spark docker

    Spark pool_spark docker概述这篇文章主要是分析一下Pool这个任务调度的队列。整体代码量也不是很大,正好可以详细的分析一下,前面在TaskSchedulerImpl提到大体的功能,这个点在丰富一下吧。DAGSchedul

    2022年8月4日
    3
  • java字符串分割方法

    java字符串分割方法java分割字符串split()方法实现功能编写一个将字符串分段的类,传入:需分段的字符串与字符个数(以此个数进行分段),输出:按指定字符个数进行分段后的若干字符串(汉字算单个字符)。功能实现要求分析字符串传入字符串分段字符串输出实现思路Java是一个面向对象设计类语言,自身提供了很多方法帮助我们实现想要的功能。那么如何实现字符串传入功能?我们需要了解一个Java类—-Scanner类,这是一个用于扫描输入文本的新的实用程序。自Java5版本添加了java.util.Sc

    2022年6月9日
    30
  • 奠定未来智能家居基础 助力江门打造智慧城市

    奠定未来智能家居基础 助力江门打造智慧城市

    2022年3月4日
    40
  • 一些入门的c#程序

    一些入门的c#程序

    2021年9月28日
    38
  • python字符串查找特定字符_神器是啥意思

    python字符串查找特定字符_神器是啥意思TheFuzz库对应的源码链接为https://github.com/seatgeek/thefuzz。需要说明的是,TheFuzz是FuzzyWuzzy的升级版本,后者在2020年后已经不再进行更新,所以请及时切换到TheFuzz库。1.安装方法2.两大模块fuzz和process2.1模块一:fuzz2.2模块二:process2.2.1process.extractOne(提取出相似度最高的选择)2.2.2process.extract(提取出相似度高的多个选择)3.实战案例

    2022年8月21日
    4

发表回复

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

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