一、Mybatis缓存介绍

正如大多数持久层框架一样,Mybatis同样提供了一级缓存和二级缓存

  1、一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session,当Session flush或close之后,该Session中的所有Cache就将清空。

   2、二级缓存与一级缓存其机制相同,默认也是采用PerpetualCache的HashMap存储,不同于其存储作用域为Mapper(Namespace),并且可自定义存储源,如Ehcache。

   3.对于缓存更新机制,当某一个作用域(一级缓存Session/二级缓存Namespaces)进行了CUD操作后,默认该作用域下所有select中的缓存将被clear。

二、二级缓存的设置

  1、开启二级缓存,在SQL的映射文件中添加如下配置 (**.xml)

<!-- 开启二级缓存 -->
<cache/>

 补充说明:

  1. 映射语句文件中的所有select语句将会被缓存。

  2. 映射语句文件中的所有insert,update和delete语句会刷新缓存。

  3. 缓存会使用Least Recently Used(LRU,最近最少使用的)算法来收回。

  4. 缓存会根据指定的时间间隔来刷新。

  5. 缓存会存储1024个对象

  cache标签常用属性:

<cache
eviction="FIFO" <!--回收策略为先进先出-->
flushInterval="" <!--自动刷新时间60s-->
size="" <!--最多缓存512个引用对象-->
readOnly="true"/> <!--只读-->

MyBatis的学习总结六:Mybatis的缓存【参考】的更多相关文章

  1. Spring Boot学习笔记(六)mybatis配置多数据源

    application.properties #数据库配置 #数据源类型 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource # ...

  2. MyBatis入门学习教程-使用MyBatis对表执行CRUD操作

    上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...

  3. mybatis基础学习4---懒加载和缓存

    1:懒加载 1)在主配置文件设置(要放在配置文件最前面) <!-- 延迟加载配置,两个都必须同时有 --> <settings> <!-- lazyLoadingEnab ...

  4. mybatis基础学习5---懒加载和缓存

    1:懒加载 1)在主配置文件设置(要放在配置文件最前面) 1 <!-- 延迟加载配置,两个都必须同时有 --> <settings> 3 <!-- lazyLoading ...

  5. MyBatis入门学习教程-优化MyBatis配置文件中的配置

    一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 1 <?xml version=" ...

  6. Mybatis的学习总结:mybatis的入门介绍

    一.myBatis简述 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...

  7. Mybatis基础学习(一)—初识MyBatis

    一.MyBatis是什么?      MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google co ...

  8. Mybatis框架学习总结-优化Mybatis配置文件中的配置

    连接数据库的配置单独放在一个properties文件中 之前,是直接将数据库的连接配置信息卸载了Mybatis的conf.xml文件中,如下: <?xml version="1.0&q ...

  9. Mybatis框架学习总结-使用Mybatis对表执行CRUD操作

    使用MyBatis对表执行CRUD操作——基于XML的实现 1.创建(create)用户:在userMapper.xml文件中增加: <!-- 创建用户Create --> <ins ...

随机推荐

  1. Oracle statspack 安装及使用

    转载:http://blog.csdn.net/joinplay/article/details/23358133 oracle statspack 工具从oracle 8.1.6开始被引用,从ora ...

  2. Bzoj 3339: Rmq Problem && Bzoj 3585: mex 莫队,树状数组,二分

    3339: Rmq Problem Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 833  Solved: 397[Submit][Status][D ...

  3. Delphi的四舍五入函数

    一.四舍五入法    四舍五入是一种应用非常广泛的近似计算方法,其有算术舍入法和银行家舍入法两种.    所谓算术舍入法,就是我们通常意义上的四舍五入法.其规则是:当舍去位的数值大于等于5时,在舍去该 ...

  4. curl测试puppet http api接口

    ---恢复内容开始--- 基于证书密钥对 curl --cert /etc/puppetlabs/puppet/ssl/certs/master.puppet.org.pem --key /etc/p ...

  5. 一起来说 Vim 语

    作为一款古老而具有持久生命力的编辑器,vim 自有它的强大之处.很多人觉得 Vim 的学习曲线太陡峭了,为了能够把 Vim 用得风生水起,不得不记忆大量的命令.如果你是 Vim 新手,刚入门就开始面对 ...

  6. RDD.scala(源码)

    ---- map. --- flatMap.fliter.distinct.repartition.coalesce.sample.randomSplit.randomSampleWithRange. ...

  7. 【python自动化第三篇:python入门进阶】

    鸡汤: 多学习,多看书. 推荐书籍:<追风筝的人>,<林达看美国>,<白鹿原> 本节知识点 集合及其操作 文件操作 函数与函数式编程 递归 一.集合及其操作 集合( ...

  8. android开发:@SuppressLint( NewApi )

    这个是android带的lint工具提示的,lint官方的说法是 Improving Your Code with lint,应该是帮助提升代码的 ,如果不想用的话,可以右键点工程,然后在androi ...

  9. [TypeScript ] What Happens to Compiled Interfaces

    This lesson covers using your first TypeScript Interface and what happens to the Interface when it i ...

  10. android的消息处理机制(图+源码分析)——Looper,Handler,Message

    android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了.这不,前几天为了了解android ...