Mybatis加入Ehcache支持
1.Mybatis默认的缓存配置
MyBatis 包括一个很强大的查询缓存特性,它能够很方便地配置和定制。
Mybatis缓存包括全局的缓存和局部的缓存。全局的缓存能够讲主配置文件的setting属性的參数cacheEnabled设置为true(好吧,默觉得true),
局部的二级缓存默认情况下是没有开启的。要开启二级缓存,你须要在你的 SQL 映射文件里加入一行:
<cache/>
eviction(回收策略) 默认的是 LRU。可选择项有FIFO,SOFT,WEAK
flushInterval(刷新间隔)能够被设置为随意的正整数,并且它们代表一个合理的毫秒 形式的时间段。默认情况是不设置,也就是没有刷新间隔,缓存只调用语句时刷新。
size(引用数目)能够被设置为随意正整数,要记住你缓存的对象数目和你执行环境的 可用内存资源数目。默认值是 1024。
readOnly(仅仅读)属性能够被设置为 true 或 false。
仅仅读的缓存会给全部调用者返回缓 存对象的同样实例。因此这些对象不能被改动。
这提供了非常重要的性能优势。可读写的缓存 会返回缓存对象的拷贝(通过序列化) 。这会慢一些,可是安全,因此默认是 false。
2.Mybatis加入Ehcache
Mybatis加入第三方缓存组件支持仅仅须要在sql映射文件里加入一行:
<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>
当然你能够选择配置自己的属性,你能够选择配置<cache>的子属性<property>来设置详细的參数。也能够过配置class路径下ehcache.xml来完毕配置;
配置的属性跟Hibernate配置Ehcache同样,你能够查看我的上一篇blog。
当然相同假设你须要记录日志的话。你能够用
<cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>
取代 <cache type="org.mybatis.caches.ehcache.EhcacheCache"/>
欢迎大家一起讨论学习!
实用的自己收!
记录与分享,让你我共成长!欢迎查看我的其它博客。我的博客地址:http://blog.csdn.net/caicongyang
Mybatis加入Ehcache支持的更多相关文章
- mybatis 与 ehcache 整合[转]
1.简介 MyBatis 是支持普通SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC 代码和参数的手工设置以及结果集的检索. Ehcache 是现在最流行的纯 ...
- Mybatis集成ehcache
Mybatis集成ehcache 1.为什么需要缓存 拉高程序的性能 2. 什么样的数据需要缓存 很少被修改或根本不改的数据 业务场景比如:耗时较高的统计分析sql.电话账单查询sql等 3. ehc ...
- mybatis0210 mybatis和ehcache缓存框架整合
.1mybatis和ehcache缓存框架整合 一般不用mybatis来管理缓存而是用其他缓存框架在管理缓存,因为其他缓存框架管理缓存会更加高效,因为别人专业做缓存的而mybatis专业做sql语句的 ...
- java-mybaits-00602-查询缓存-mybatis整合ehcache
ehcache是一个分布式缓存框架.EhCache 是一个纯Java的进程内缓存框架,是一种广泛使用的开源Java分布式缓存,具有快速.精干等特点,是Hibernate中默认的CacheProvide ...
- MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...
- MyBatis笔记——EhCache二级缓存
介绍 ehcache是一个分布式缓存框架. 我们系统为了提高系统并发,性能.一般对系统进行分布式部署(集群部署方式) 不使用分布缓存,缓存的数据在各各服务单独存储,不方便系统开发.所以要使用分布式缓 ...
- mybatis整合ehcache
知识点:mybatis整合encache缓存框架,缓存从数据库中,查询的数据,不使用mybatis自带的二级缓存 补充:github上Mybatis Ehcache 适配器包说明地址:http://w ...
- (十三)mybatis 整合 ehcache
目录 ehcache mybatis 的 Cache 接口 整合步骤 ehcache ehcache 是一个分布式缓存框架 ! 为什么需要分布式缓存? 在大型的项目中,服务器是肯定不止一台的,每台服务 ...
- SpringMVC + Mybatis + Shiro + ehcache时缓存管理器报错。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shiroFilter' ...
随机推荐
- ubuntu命令行转换图片像素大小
convert -resize 512x256 00433.png 00001.png 1.512和256之间是x(就是字母那个x),用' * '反而会报错 2.这个命令会按照原图的比例进行转换 3. ...
- numpy次方计算
>>> 2**np.arange(3, 6) array([ 8, 16, 32])
- 283. Move Zeroes@python
Given an array nums, write a function to move all 0's to the end of it while maintaining the relativ ...
- python数组中数据位置交换 -- IndexError: list assignment index out of range
代码: t = [-10,-3,-100,-1000,-239,1] # 交换 -10和1的位置 t[5], t[t[5]-1] = t[t[5]-1], t[5] 报错: IndexError: l ...
- poj-1163 动态规划
这道题目并不能直接使用递归,因为 7(1) 7(1) 7(1) 7(1) 7(2) 7(1) 7(1) 7(3) 7(3) ...
- os操作文件
os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依 ...
- shelve -- 用来持久化任意的Python对象
这几天接触了Python中的shelve这个module,感觉比pickle用起来更简单一些,它也是一个用来持久化Python对象的简单工具.当我们写程序的时候如果不想用关系数据库那么重量级的东东去存 ...
- jmespath库解析json
在测试过程中,经常会去JSON中的某个值,jmespath可以是除了jsonpath的另外一种选择. 下面通过几个例子来说明jmespath在python的使用 jmespath python安装 非 ...
- [Istio]流量管理API v1alpha3路由规则
Istio提供一个API进行流量管理,该API允许用户将请求路由到特定版本的服务,为弹性测试注入延迟和失败,添加断路器等,所有这些功能都不必更改应用程序本身的代码.Istio 1.0中引入新的流量管理 ...
- python多线程--线程同步
如果多个线程共同对某个数据修改,则可能出现不可预料的结果,为了保证数据的正确性,需要对多个线程进行同步. 使用Thread对象的Lock和Rlock可以实现简单的线程同步,这两个对象都有acquire ...