mybatis配置自带缓存和第三方缓存
来源:互联网 发布:ppt工艺流程 知乎 编辑:程序博客网 时间:2024/06/06 00:54
参考:https://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html,
http://www.yihaomen.com/article/java/428.htm
如果要实现 mybatis 的二级缓存,一般来说有如下两种方式:
1. 采用 mybatis 内置的 cache 机制。
2. 采用三方 cache 框架, 比如ehcache, oscache 等等.
采用 mybatis 内置的 cache 机制。
在 sql 语句映射文件中加入 <cache /> 语句 , 并且相应的 model 类要实现 java Serializable 接口,因为缓存说白了就是序列化与反序列化的过程,所以需要实现这个接口. 单纯的 <cache /> 表示如下意思:
1.所有在映射文件里的 select 语句都将被缓存。
2.所有在映射文件里 insert,update 和 delete 语句会清空缓存。
3.缓存使用“最近很少使用”算法来回收
4.缓存不会被设定的时间所清空。
5.每个缓存可以存储 1024 个列表或对象的引用(不管查询出来的结果是什么) 。
6.缓存将作为“读/写”缓存,意味着获取的对象不是共享的且对调用者是安全的。不会有其它的调用者或线程潜在修改。
缓存元素的所有特性都可以通过属性来修改。比如:
程序代码
<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true" />
采用 ehcache 来实现 mybatis 的二级缓存
首先需要在 mybatis 的官网上下载相关jar 包:https://code.google.com/p/mybatis/ 写文档的时候下载的是:mybatis-ehcache-1.0.2.zip ,里面包括了
程序代码
mybatis-ehcache-1.0.2.jar
ehcache-core-2.6.5.jar
slf4j-api-1.6.1.jar
当然,采用ehcache 就必须在 classpath 下 加入ehcache 的配置文件 ehcache.xml:
程序代码
<cache name="default"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="10"
overflowToDisk="true"
diskPersistent="true"
diskExpiryThreadIntervalSeconds="120"
maxElementsOnDisk="10000"
/>
那么在 sql 映射文件中要如何配置呢,参考如下:
程序代码
<cache type="org.mybatis.caches.ehcache.LoggingEhcache" >
<property name="timeToIdleSeconds" value="3600"/><!--1 hour-->
<property name="timeToLiveSeconds" value="3600"/><!--1 hour-->
<property name="maxEntriesLocalHeap" value="1000"/>
<property name="maxEntriesLocalDisk" value="10000000"/>
<property name="memoryStoreEvictionPolicy" value="LRU"/>
</cache>
总结:无论是采用mybatis 自身的cache 还是三方的cache , 这样的配置,就是对 所有的select 语句都全局缓存,但事实上,并不总是这样,比如,我在这系列教程中第七章中http://www.yihaomen.com/article/java/326.htm,自己写的分页算法,就不能用这种情况。需要禁止掉cache ,所以需要如下方法:
程序代码
<select id="selectArticleListPage" resultMap="resultUserArticleList" useCache="false">
.......
注意到 useCache="false" 了吗? 这可以避免使用缓存。
1 0
- mybatis配置自带缓存和第三方缓存
- MyBatis自带的缓存配置(Cache)
- mybatis 应用第三方缓存框架ehcache
- 第三方缓存软件:Redis 和 Memcached
- 第三方 缓存 EGOCache
- Spring自带缓存配置及Ehcache缓存
- mybatis详解-(22)整合第三方缓存Ehcache
- Spring 缓存及 第三方缓存接入
- Hibernate第三方缓存实现
- 图片缓存第三方库
- MyBatis缓存理解和配置使用
- Mybatis配置缓存
- MyBatis缓存配置
- Mybatis redis 缓存配置
- MyBatis缓存配置
- mybatis缓存配置
- Mybatis配置分布式缓存
- Mybatis缓存配置
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之二 - 断言
- AT指令发送短信流程及接听、拨打电话
- DEFINE_PER_CPU
- 欢迎使用CSDN-markdown编辑器
- mac上使用github命令提交代码实例(三)创建Android项目
- mybatis配置自带缓存和第三方缓存
- Android Icon的尺寸要求
- iOS系统网络抓包方法
- Ubuntu 下安装 WireShark
- Java之观察者模式(Observer Pattern)
- Maven学习总结(七)——eclipse中使用Maven创建Web项目
- C/C++常用字符类型char、CSting、string转化
- 《C专家编程》阅读笔记
- iOS tcpdump抓包方法