`
xitong
  • 浏览: 6313997 次
文章分类
社区版块
存档分类
最新评论

使用IBatis作数据缓存

 
阅读更多
背景:做一个排行榜,由于网站访问量很大,为了避免每次都直接访问数据库,所以采用缓存策略

目前我们采用IBatis作ORM, 所以我们直接使用了IBatis 自带的缓存解决方案。当然你也可以定制,我在我的一篇文章可复用、扩展的缓存设计方案也谈到了如何定制 ,个人认为如果不是非常复杂的需求,完全可以借助ORM自带的方案.你会发现非常非常简单.

下面我们进入实战:

step1)写ibatis的相关配置
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEsqlMapPUBLIC"-//iBATIS.com//DTDSQLMap2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd"
>

<sqlMapnamespace="specialtopic">

............
<cacheModelid="getTopVideoListByColumn1-cache"type="OSCACHE" >
<flushIntervalseconds="60"/>

</cacheModel>


............

<statementid="getTopVideoListByColumn1"resultMap="top-Video-column1"cacheModel="getTopVideoListByColumn1-cache">
selectv.videoId,v.title,v.timeSpan,tu.loginName,vr.viewedCount
fromtop_baby_videotbv
innerjoinvideovontbv.videoId=v.videoId
innerjoinvideo_reportvronv.videoId=vr.videoId
innerjointvUsertuonv.tvUserId=tu.tvUserId
</statement>

</sqlMap>

显而易见上面的cacheModel是缓存策略, 只需加在statement段的属性中即可

step2)写dao方法
publicListgetTopVideoListByColumn1()...{
Listlist
=this.getSqlMapClientTemplate().queryForList("getTopVideoListByColumn1",
null);
returnlist;
}



就是这么简单,从客户端的角度看,缓存是透明的.你可以从配置文件修改你的缓存策略,不会对你的java代码造成任何影响.
分享到:
评论

相关推荐

    ibatis_数据缓存

    iBatis 数据缓存机制是提高数据库访问性能的重要手段,它允许将查询结果存储在内存中,以便后续相同查询能够快速获取数据,而无需每次都执行SQL查询。在深入理解iBatis的Cache概念之前,首先需要知道iBatis是一个轻...

    ibatis 数据缓存.pdf

    ibatis 数据缓存,讨论了ibatis 数据缓存方面的概念,即用法,用到ibatis 数据缓存的可以参考一下

    ibatis-缓存使用示例

    3. 使用缓存:在Java代码中,通过SqlSession的`selectOne`, `selectList`等方法查询数据时,会自动检查并使用缓存。 通过这个示例,你可以深入理解iBATIS缓存的工作原理,以及如何在项目中有效利用缓存优化性能。...

    iBATIS缓存的使用方法

    ### iBATIS缓存的使用方法 在数据库访问框架iBATIS中,缓存机制是一项重要的功能,它能够显著提高应用程序的性能。本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL...

    iBATIS缓存介绍

    - **1.5.2 LFU (Less Frequently Used)**:使用频率最低的数据将被优先清除,需要为缓存元素记录访问频率。 - **1.5.3 LRU (Least Recently Used)**:最近最少使用的数据将被优先清除,通过记录元素的时间戳来进行...

    iBATIS缓存

    总的来说,iBATIS缓存是优化数据库操作性能的有效手段,但同时也需要谨慎使用,合理配置缓存策略,防止出现因缓存导致的数据不一致问题。了解和掌握iBATIS缓存的原理与实践,能帮助开发者更好地优化应用程序,提升...

    解决IBatis缓存动态字段问题

    在使用IBatis框架处理数据库操作时,可能会遇到动态数据表名、动态字段名的情况。这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为:当第一次查询某个表时,IBatis会将查询结果中的字段名...

    Java_ibatis缓存技术

    - **缓存的键(Key)策略**:iBatis默认使用SQL语句作为缓存的键,但也可以根据业务逻辑定制Key,确保其唯一性。 - **缓存Eviction策略**:当缓存达到最大容量时,需要采取淘汰策略。iBatis提供了几种常见的淘汰策略...

    spring+ibatis+oracle分页缓存源码

    总的来说,"spring+ibatis+oracle分页缓存源码"项目展示了如何在Spring管理的环境中,利用iBatis和Oracle数据库实现高效的数据分页和缓存策略。通过理解和实践这些技术,开发者可以构建出更加健壮、响应快速的Web...

    iBATIS缓存介绍[借鉴].pdf

    iBATIS,作为一个流行的数据访问框架,也提供了缓存功能来优化数据库查询。本文将详细介绍iBATIS缓存的概念、类型以及配置方法。 一.缓存介绍 缓存,简单来说,是为了减少对数据库的频繁访问,将常用数据存储在...

    ibatis 缓存配置策略

    LRU是基于最近使用原则,当缓存满时,最久未使用的数据会被清除;FIFO遵循先进先出的原则;Memory没有数量限制,但依赖于JVM内存管理;OsCache则支持分布式环境。值得注意的是,目前iBatis并不支持用户自定义扩展...

    ibatis的使用教程

    【Ibatis 框架详解】 Ibatis 是一个基于 Java 的持久层框架,源自于“internet”和“abatis...通过合理的配置和使用,Ibatis 可以有效地帮助开发者实现数据持久化,并与其他主流框架(如Spring)集成,提高开发效率。

    ibatis 使用手册

    此外,还会介绍如何处理结果集、执行批量操作、使用缓存机制等高级特性。 **iBatis SQL Maps** - **Select**: 用于查询数据,可以返回单个对象、列表或者Map。 - **Insert**: 插入数据,支持自动获取自增主键值。 ...

    ibatis demo,ibatis例子,ibatis示例

    7. **缓存机制**:Ibatis内置了本地缓存和二级缓存,可以提高数据读取速度。本地缓存作用于单个SqlSession,而二级缓存则可以在多个SqlSession之间共享,但需要注意并发控制和数据一致性问题。 8. **插件支持**:...

    iBatis Web用法实例

    iBatis 提供了缓存机制,可以在一定程度上提高查询效率。同时,通过合理设计SQL语句,避免全表扫描,使用索引等方法,也能有效提升性能。 10. **错误处理与调试**: 在开发过程中,iBatis的异常信息通常很详细,...

    ibatis api 帮助文档+IBATIS 开发文档

    IBATIS,一个由iBATIS公司开发的开源持久层框架,是Java世界中广泛使用的数据访问接口(DAO)工具。它允许开发者将SQL语句直接写在XML配置文件中,实现了SQL与Java代码的分离,提高了开发效率和数据库移植性。本篇将...

    ibatis使用及环境搭建文档

    5. **缓存机制**: Ibatis提供了本地缓存和二级缓存,可以提高数据访问速度。 **案例实践** 一个简单的Ibatis查询操作示例: 1. 定义Mapper XML文件,包含一个查询所有用户信息的SQL语句: ```xml SELECT * FROM...

Global site tag (gtag.js) - Google Analytics