MyBatis Cache配置
@(MyBatis)[Cache]
MyBatis Cache配置
MyBatis提供了一级缓存和二级缓存
配置
全局配置
| 配置 | 说明 | 默认值 | 可选值 |
|---|---|---|---|
| cacheEnabled | 全局缓存的开关 | true | true false |
| localCacheScope | 本地缓存,SESSION表示执行的sql结果缓存数据可以在同一个sqlSession共享, 而STATEMENT,则同只有在单条语句会被缓存, 两条语句不能共享缓存数据 |
SESSION | SESSION STATEMENT |
<!-- 默认值 -->
<setting name="cacheEnabled" value="true"/>
<setting name="cacheEnabled" value="SESSION"/>
Mapper配置
flushCache=true表示该语句的执行结果,会清空本地缓存以及2级缓存
useCache="true"表示该语句的执行结果,会被缓存到到2级缓存
默认值:
<select flushCache="false" useCache="true">
<insert/update/delete flushCache="true">
<cache>:当前Mapper的缓存配置,二级缓存
<cache-ref>:cache只对特定的Namespace使用,即每个namespace使用一个cache实例,如果要多个namespace使用同一个cache实例,则可以使用cache-ref来引用
<cache blocking="" eviction="" flushInterval="" readOnly="" size="" type="">
<property name="" value=""/>
</cache>
<cache-ref namespace=""/>
cache配置
| 属性 | 说明 | 默认值 | 可选值 |
|---|---|---|---|
| eviction | 回收内存策略 | LRU | LRU FIFO SOFT WEAK |
| flushInterval | 刷新间隔 | 没设置 | 大于0 (单位:ms) |
| size | 缓存对象的数量 | 1024 | 大于0 |
| readOnly | 如果为true会返回所有调用者同一个实例,尽管提高了性能, 但是需要程序保证实例对象不被修改,如果为false, 则为读写缓存,会通过序列化返回缓存对象的一份Copy, 较慢,但是比较安全 |
false | true false |
| type | 可以指定自定义缓存,但是该类必须实现 org.apache.ibatis.cache.Cache接口 |
com....class |
自定义缓存
<!-- 该属性会调用setCacheFile方法(setter),将属性值注入 -->
<cache type="com.domain.something.MyCustomCache">
<property name="cacheFile" value="/tmp/my-custom-cache.tmp"/>
</cache>
二级缓存整体管理结构:
MapperA.xml
<mapper namespace="com.jabnih.demo.mapper.MapperA">
<cache />
</mapper>
MapperB.xml
<mapper namespace="com.jabnih.demo.mapper.MapperB">
<cache-ref namespace="com.jabnih.demo.mapper.MapperA"/>
</mapper>
MapperC.xml
<mapper namespace="com.jabnih.demo.mapper.MapperC">
<cache />
</mapper>
如下:

MyBatis Cache配置的更多相关文章
- Mybatis XML配置
Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...
- MyBatis 实践 -配置
MyBatis 实践 标签: Java与存储 Configuration mybatis-configuration.xml是MyBatis的全局配置文件(文件名任意),其配置内容和顺序如下: pro ...
- SpringMVC+Mybatis+MySQL配置Redis缓存
SpringMVC+Mybatis+MySQL配置Redis缓存 1.准备环境: SpringMVC:spring-framework-4.3.5.RELEASE-dist Mybatis:3.4.2 ...
- SmartSql = Dapper + MyBatis + Cache(Memory | Redis) + ZooKeeper + R/W Splitting + ......
SmartSql Why 拥抱 跨平台 DotNet Core,是时候了. 高性能.高生产力,超轻量级的ORM.156kb (Dapper:168kb) So SmartSql TargetFrame ...
- [教程] Spring+Mybatis环境配置多数据源
一.简要概述 在做项目的时候遇到需要从两个数据源获取数据,项目使用的Spring + Mybatis环境,看到网上有一些关于多数据源的配置,自己也整理学习一下,然后自动切换实现从不同的数据源获取数据功 ...
- Mybatis Cache 缓存策略
Mybatis Cache 缓存策略 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用 ...
- Java-MyBatis:MyBatis 3 配置
ylbtech-Java-MyBatis:MyBatis 3 配置 1.返回顶部 1. XML 映射配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings) ...
- MyBatis 核心配置综述之Executor
目录 MyBatis四大组件之 Executor执行器 Executor的继承结构 Executor创建过程以及源码分析 Executor接口的主要方法 Executor 的现实抽象 上一篇我们对Sq ...
- Mybatis XML配置(转载)
原文地址:https://www.w3cschool.cn/mybatis/f4uw1ilx.html Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它 ...
随机推荐
- pc端与移动端的区别
移动设备和PC本身有区别: 1.屏幕尺寸不同,屏幕大小导致显示的内容页不一样. 2.网络速度不同:手机分2G.3G.4G.WIFI等,我们要少用图片,JS.动画等等,用户打不开一样起不了作用. 3.使 ...
- httpClient实现微信公众号消息群发
1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信openid的微信用户集合) 2.基本步骤 前提: 已经有认证的公众号或者测试公众账号 发送消息步骤: 发送一 ...
- Centos7 关闭防火墙
CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下 1.直接关闭防火墙 systemctl stop firewalld.service #停止firew ...
- Linux下的C Socket编程 -- 获取对方IP地址
Linux下的C Socket编程(二) 获取域名对应的IP地址 经过上面的讨论,如果我们想要连接到远程的服务器,我们需要知道对方的IP地址,系统函数gethostbyname便能够实现这个目的.它能 ...
- centos系统编译安装nginx+php环境另加独立mysql教程
以前看过的安装nginx+php环境都带了mysql数据库了,这个是因为很多站长都是nginx+php+mysql都在同一台服务器了,那么今天我们是单独处理了,一个是nginx+php环境,然后mys ...
- 5sing分析
0x1.抓包数据:用fiddler抓取不到,用smartsniff [6/26/星期日 18:05:04:391]GET /user/login?username=15081515272&pa ...
- asp.net mvc 绑定客户端post过来的复杂JSON数据
客户端代码如下: <input type="button" id="btnTest" value="测试" /><br / ...
- PHP执行文档操作
1.POWINTPOINT系列 之前参与过一个商城的项目,里面有将excel 导出的功能,但是如果要弄成PPT的我们应该怎么办呢?PHP是属于服务器端的 总不能在里面装个Powintpoint吧.于是 ...
- Java学习笔记(一)
纯属个人学习笔记,有什么不足之处大家留言,谢谢 Java程序打包与JAR运行方法 在Eclipse的"包资源管理器"视图中找到要打包成JAR文件的项目.在项目名称上单击鼠标右键,在 ...
- 【hrbust2294】修建传送门
题意 哈理工2016级新生程序设计全国邀请赛B题 n个点1~n,i到i+1的距离为a[i],现在可以在两个点之间建一个传送门,则两点之间距离为0,求建传送门后1号出发的最远距离最小是多少? 题解 a[ ...