当前位置: 首页 > news >正文

Mybatis学习笔记:缓存(未完成)

本文是自己的学习笔记,主要参考以下资料

- 马士兵教育

  • 1、缓存概念
  • 2、二级缓存Encache集成
    • 2.1、导入依赖
    • 2.2、

1、缓存概念

缓存是针对一些大量的重复查询,将查询结果存到内存中,减少数据库的负担。

Mybatis的缓存有三个级别。

类别说明
一级缓存事务范围:缓存只能被当前事务访问。缓存的生命周期依赖于事务的生命周期当事务结束时,缓存也就结束生命周期。 在此范围下,缓存的介质是内存。
二级缓存进程范围:缓存被进程内的所有事务共享。这些事务有可能是并发访问缓存,因此必须对缓存采取必要的事务隔离机制。 缓存的生命周期依赖于进程的生命周期,进程结束时, 缓存也就结束了生命周期。进程范围的缓存可能会存放大量的数据, 所以存放的介质可以是内存或硬盘。
三级缓存集群范围:在集群环境中,缓存被一个机器或者多个机器的进程共享。 缓存中的数据被复制到集群环境中的每个进程节点, 进程间通过远程通信来保证缓存中的数据的一致性, 缓存中的数据通常采用对象的松散数据形式

一级缓存的作用不大,因为缓存数据仅存在于一次会话中,相当于一个方法。实际开发中我们查询的数据在一个方法中通过变量随时可以拿到,所以一级缓存的意义不大。

二级缓存是最常用的,还需要搭配redis或者encache来实现二级缓存。

2、二级缓存Encache集成

2.1、导入依赖

这里我们用encache实现二级缓存,所以先导入依赖。

<dependency><groupId>net.sf.ehcache</groupId><artifactId>ehcache</artifactId><version>1.5.0</version>
</dependency><dependency><groupId>org.mybatis.caches</groupId><artifactId>mybatis-ehcache</artifactId><version>1.1.0</version>
</dependency>

2.2、

在对应的mapper.xml增加一个配置。表明该mapper的查询结果都将进入缓存中,并且指明缓存的类型。

<mapper namespace="com.bobo.dao.EmpMapper"><cache type="org.mybatis.caches.ehcache.EhcacheCache" />...
</mapper>

每次调用这个mapper里的查询时,都会优先在缓存中查找数据。

相关文章:

  • 电子电器架构新趋势 —— 最佳着力点:域控制器
  • 【BUG 记录】史诗级 BUG - MYSQL 删库删表却没有备份如何恢复数据
  • DS注解作用
  • http状态,cookie、session、token的对比
  • COMSOL传热建模
  • etcd java 客户端jetcd库踩坑日志
  • 【HDFS】Decommision(退役) EC数据节点剩最后几个块卡住的问题
  • 超低功耗32位单片机MM32L0130
  • 【Android】隐藏settings中的二级菜单
  • 【Kubernetes】k8s中容器之间、pod之间如何进行网络通信?
  • 【比较mybatis、lazy、sqltoy、mybatis-flex操作数据】操作批量新增、分页查询(二)
  • 计算机网络(2)-----数据链路层
  • 集合篇之ArrayList
  • 【软件测试】--功能测试4-html介绍
  • untiy 室内灯光最佳实践
  • Google 是如何开发 Web 框架的
  • (三)从jvm层面了解线程的启动和停止
  • [case10]使用RSQL实现端到端的动态查询
  • css的样式优先级
  • gcc介绍及安装
  • Java精华积累:初学者都应该搞懂的问题
  • miaov-React 最佳入门
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • PermissionScope Swift4 兼容问题
  • PHP的类修饰符与访问修饰符
  • ReactNative开发常用的三方模块
  • Vue 2.3、2.4 知识点小结
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 如何进阶一名有竞争力的程序员?
  • 如何在 Tornado 中实现 Middleware
  • 一份游戏开发学习路线
  • 正则表达式-基础知识Review
  • #Linux(Source Insight安装及工程建立)
  • #微信小程序:微信小程序常见的配置传值
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (强烈推荐)移动端音视频从零到上手(上)
  • (新)网络工程师考点串讲与真题详解
  • (原創) 物件導向與老子思想 (OO)
  • .a文件和.so文件
  • .Net IE10 _doPostBack 未定义
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 发展历程
  • .net 后台导出excel ,word
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .net开发时的诡异问题,button的onclick事件无效
  • .net项目IIS、VS 附加进程调试
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @DataRedisTest测试redis从未如此丝滑
  • [16/N]论得趣
  • [AutoSar]BSW_OS 02 Autosar OS_STACK
  • [BZOJ3757] 苹果树
  • [c++] 单例模式 + cyberrt TimingWheel 单例分析