iBATIS可以在Mapped Statement中使用缓存模型,在内存中缓存常用的数据。属性 cacheModel 定义查询 mapped statement 的缓存。每一个查询 mapped statement 可以使用不同或相同的cacheModel。以下给出个例子:
<cacheModel id="product-cache" imlementation="LRU">
<flushInterval hours="24"/>
<flushOnExecute statement="insertProduct"/>
<flushOnExecute statement="updateProduct"/>
<flushOnExecute statement="deleteProduct"/>
<property name="size" value="1000" />
</cacheModel>
<statement id="getProductList" parameterClass="int" cacheModel="product-cache">
select * from PRODUCT where PRD_CAT_ID = #value#
</statement>
上面例子中, “getProductList”的缓存使用 WEAK 引用类型,每 24 小时刷新一次,或当更新的操作发生时刷新。
Cache Model 使用插件方式来支持不同的缓存算法。它的实现在 cacheModel 的用 type属性来指定(如上所示)。指定的实现类必须实现 CacheController接口,或是下面 4个别名中的其中之一。Cache Model 实现的其他配置参数通过 cacheModel的 property元素来设置。目前包括以下的 4 个实现:
- "MEMORY” (com.ibatis.db.sqlmap.cache.memory.MemoryCacheController) 。MEMORY cache 实现使用 reference 类型来管理 cache 的行为。垃圾收集器可以根据 reference类型判断是否要回收 cache 中的数据。MEMORY实现适用于没有统一的对象重用模式的应用,或内存不足的应用。
- “LRU” (com.ibatis.db.sqlmap.cache.lru.LruCacheController) 。LRU Cache 实现用“近期最少使用”原则来确定如何从 Cache 中清除对象。当 Cache溢出时,最近最少使用的对象将被从 Cache 中清除。使用这种方法,如果一个特定的对象总是被使用,它将保留在 Cache 中,而且被清除的可能性最小。对于在较长的期间内,某些用户经常使用某些特定对象的情况(例如,在 PaginatedList 和常用的查询关键字结果集中翻页) ,LRU Cache 是一个不错的选择。
- “FIFO” (com.ibatis.db.sqlmap.cache.fifo.FifoCacheController) 。FIFO Cache 实现用“先进先出”原则来确定如何从 Cache 中清除对象。当 Cache 溢出时,最先进入 Cache 的对象将从 Cache 中清除。对于短时间内持续引用特定的查询而后很可能不再使用的情况,FIFO Cache 是很好的选择。
- “OSCACHE” (com.ibatis.db.sqlmap.cache.oscache.OSCacheController) 。OSCACHE Cache 实现是OSCache2.0缓存引擎的一个 Plugin。它具有高度的可配置性,分布式,高度的灵活性。
分享到:
相关推荐
iBATIS-SqlMaps-2-Tutorial_cniBATIS-SqlMaps-2-Tutorial_cn.pdf.pdfiBATIS-SqlMaps-2-Tutorial_cn.pdfiBATIS-SqlMaps-2-Tutorial_cn.pdf
ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园
总的来说,《ibatis-sqlmaps-2_cn》全面覆盖了IBATIS框架的主要概念和使用方法,深入浅出地介绍了如何利用IBATIS进行数据库操作。阅读并实践这个教程,你将能够更好地理解和应用IBATIS,提升你在Java开发中的数据库...
iBATIS-SqlMaps-2_cn中文文档
《iBATIS-SqlMaps-2-Tutorial_cn》是一本针对初学者的优秀教程,它深入浅出地介绍了iBATIS这一流行的数据访问框架。iBATIS,作为Java世界中的一个轻量级持久层框架,它提供了一种将SQL查询与Java代码解耦合的方法,...
这个PDF文档资料集全面介绍了如何使用iBATIS-SqlMaps-2进行数据库交互,尤其适合对Java开发和数据库操作感兴趣的初学者以及希望提升数据库访问效率的开发者。 首先,iBATIS的核心概念是SqlMap,它是一个XML配置文件...
本资料集为日文版,旨在帮助熟悉日语的开发者了解和掌握iBATIS-SqlMaps-2的使用。 iBATIS的核心概念是SqlMap,它是一种XML配置文件,用于定义SQL语句和映射结果集到Java对象。SqlMap中的每个元素都代表一个数据库...
快速入门教程旨在帮助开发者快速了解 iBATIS-SqlMaps-2 的使用和配置。 知识点1:iBATIS-SqlMaps-2 简介 iBATIS-SqlMaps-2 是一个基于 Java 的持久层框架,旨在简化 Java 应用程序中的数据库交互。它提供了一种...
Ibatis基本配置---[环境搭建
### iBATIS缓存的使用方法 在数据库访问框架iBATIS中,缓存机制是一项重要的功能,它能够显著提高应用程序的性能。本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL...
apache开源项目源码ibatis-3-core-src-3.0.0.227 ibatis框架java源程序 spring,struts,hibernate,ibatis,框架源码 各种ibatis框架应用源码,你会从中得到意想不到的效果! apache开源组织开发的开源项目源码,其...
### iBATIS-SqlMaps-2_ja.pdf 相关知识点 #### iBATIS Data Mapper 概览 iBATIS Data Mapper(也称为 SQL Maps)是一个开源框架,它旨在简化与关系数据库交互所需的 Java 代码量。通过使用简单的 XML 配置文件,...
ibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zipibatis-3-core-3.0.0.242.jar.zip
《iBATIS-SqlMaps-2_cn.pdf》是关于iBATIS SQL Maps的中文版文档,它详尽地阐述了如何使用SQL Maps来构建数据库驱动的Java应用。iBATIS是一个开源的Java库,它的核心功能是简化Java应用程序与数据库之间的交互,尤其...
2. iBATIS-SqlMaps-2_cn.pdf:这个PDF文件很可能包含iBATIS SqlMaps 2.0的中文版官方文档或教程,详细介绍了框架的使用方法、配置步骤以及最佳实践。开发者可以通过阅读这份文档深入理解iBATIS的功能和用法。 3. ...
iBATIS-SqlMaps ibatis入门教程,教你如何做配置ibatis
### iBATIS缓存介绍 #### 一、缓存介绍 **1.1 缓存对象** 理论上,Web分层设计的各个层都可以有缓存,Web中的任何对象都...由于篇幅限制,具体的参考资料未给出,建议查阅官方文档或相关的技术书籍以获取更多信息。
《iBATIS-SqlMaps-开发指南》是针对iBATIS框架的重要参考资料,分为version 1.0和version 2两个版本。iBATIS是一个Java编程语言中的持久层框架,它允许开发者将SQL语句与Java代码分离,提高了数据访问的灵活性和效率...
ibatis-3-core-3.0.0.242.zip ibatis-3-core-3.0.0.242.zip ibatis-3-core-3.0.0.242.zip ibatis-3-core-3.0.0.242.zip
ibatis-3-core-3.0.0.200