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


相关推荐

  • python手机端秒杀_python实现淘宝秒杀脚本

    python手机端秒杀_python实现淘宝秒杀脚本本文实例为大家分享了python实现淘宝秒杀脚本的具体代码,供大家参考,具体内容如下1.安装pycharm。网上教程很多。2.安装Selenium库。Selenium支持很多浏览器,我选择的是Firefox浏览器。因为我这里是Python3环境,自带的又pip,所以安装selenium直接使用pip安装安装方法:–打开cmd;–输入命令进入Python36/Scripts(找到下图的目录)…

    2022年5月30日
    28
  • tkmapper教程_tkr和tka的区别

    tkmapper教程_tkr和tka的区别tkMapper入门1、tkMapper介绍1.1SpringBoot整合MyBatis以及tkMapper1.2在启动类上修改注解`@MapperScan`2、tkMapper的使用2.1创建数据表2.2创建实体类2.3创建Mapper接口2.4测试3、tkMapper的常用方法3.1类别实体类3.2类别接口增加修改删除查询查询所有根据主键查询条件查询分页查询带条件的分页查询关联查询1、通过多个单表操作实现2、自定义连接查询2.1、在DAO接口自定义方法2.2、创建Mapper文件1、

    2022年10月7日
    5
  • Python报错:pandas.errors.ParserError: Error tokenizing data. C error: Expected 3……

    Python报错:pandas.errors.ParserError: Error tokenizing data. C error: Expected 3……报错信息用Python做数据处理时,报如下错误:pandas.errors.ParserError:Errortokenizingdata.Cerror:Expected3fieldsinline28,saw4错误原因首先我们先看一下报错:pandas.errors.ParserError:Errortokenizingdata.Ce…

    2022年6月30日
    96
  • linux platform driver register

    linux platform driver registerPlatformDevicesandDrivers~~~~~~~~~~~~~~~~~~~~~~~~~~~~Seeforthedrivermodelinterfacetotheplatformbus: platform_device,andplatform_driver. Thispseudo-busisusedtoconnectdevice

    2022年7月26日
    13
  • macbook air13-inch_苹果笔记本mgn63ch

    macbook air13-inch_苹果笔记本mgn63chMacBookAirMGN63CH/A/MGN93CH/A/MGND3CH/A/MGN73CH/A/MGNA3CH/MGNE3CH/A配置报价图片:https://www.mac.so/macbook-air/MGN63CH/A 7999 深空灰色 全新MacBookAirM1芯片低配 触控ID AppleM1芯片配备8核中央处理器 8GB统一内存 256GB固态硬盘 7核图形处理器 13.3原彩显示2560×160…

    2022年10月6日
    3
  • MySql数据库备份与恢复——使用mysqldump 导入与导出方法总结「建议收藏」

    MySql数据库备份与恢复——使用mysqldump 导入与导出方法总结「建议收藏」MySql数据库备份与恢复——使用mysqldump导入与导出方法总结mysqldump客户端可用来转储数据库或搜集数据库进行备份或将数据转移到另一个sql服务器(不一定是一个mysql服务器)。转储包含创建表和/或装载表的sql语句。ps、如果在服务器上进行备份,并且表均为myisam表,应考虑使用mysqlhotcopy,因为可以更快地进行备份和恢复。本文从三部分介绍了mys…

    2022年6月13日
    118

发表回复

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

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