一、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. (转载)可重入函数(reentrant function)

    (转载)http://blog.163.com/xu_jin_rong/blog/static/1491966220086775017178 由于cublog系统的缘故,将前段时间写的一篇blog文章 ...

  2. Linux Mono Asp.net 部署方案

    1.Jexus 国内的 官网:http://www.jexus.org 2.Apache 官网:http://mono-project.com/Mod_mono 3.Nginx 官网:http://m ...

  3. asp.mvc 插件式框架

    参考文档: http://blog.csdn.net/bitfan/article/details/17260775 http://www.cnblogs.com/Mainz/archive/2012 ...

  4. HTML5 Canvas核心技术—图形、动画与游戏开发.pdf3

    路径与子路径 在某一时刻,canvas之中只能有一条路径存在,Canvas规范称之为“当前路径”(current path),这条路径却可以包含很多子路径(subpath),子路径是由两个或者更多点组 ...

  5. DS1302-演示代码

    参考DS1302数据手册,尽管数据手册是英文,但是很有帮助,再结合网上众多的代码写出了下面这个例子,除了涓流充电(trickle charger)功能没使用外,内部的RAM和寄存器功能都使用到了,包括 ...

  6. Little Busters! — 并查集

    题目链接:http://acm.buaa.edu.cn/problem/418/ 代码: #include<cstdio> #include<iostream> #includ ...

  7. 腾讯sdk配置

    android-mirror.bugly.qq.com

  8. linux-centos挂载新硬盘操作

    类似的文章网上已经有很多,这里是记录重要操作的命令,精简流程 精简后的命令: fdisk -ldf -hfdisk /dev/vdbfdisk -l /dev/vdbmkfs -t ext4 /dev ...

  9. jqChart动态数据

    <link rel="stylesheet" type="text/css" href="../../css/jquery.jqChart.cs ...

  10. [C#] 常用工具类——系统日志类

    using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; namespa ...