使用IBatis作数据缓存

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

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

下面我们进入实战:

step1)写ibatis的相关配置
<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" 
"http://www.ibatis.com/dtd/sql-map-2.dtd"
>

< sqlMap  namespace ="specialtopic" >

     ............
    
< cacheModel  id ="getTopVideoListByColumn1-cache"  type  ="OSCACHE" >  
        
< flushInterval  seconds ="60" />  
       

</ cacheModel >
    
    
    ............
        
    
< statement  id ="getTopVideoListByColumn1"  resultMap ="top-Video-column1"  cacheModel ="getTopVideoListByColumn1-cache" >
        select v.videoId,v.title,v.timeSpan,tu.loginName,vr.viewedCount 
        from top_baby_video tbv
        inner join video v on tbv.videoId=v.videoId
        inner join video_report vr on v.videoId=vr.videoId  
        inner join tvUser tu on v.tvUserId=tu.tvUserId
    
</ statement >
    
</ sqlMap >
    

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

step2)写dao方法
public  List getTopVideoListByColumn1 () {
        List list 
= this.getSqlMapClientTemplate().queryForList("getTopVideoListByColumn1",
                
null);
        
return list;
    }



就是这么简单,从客户端的角度看,缓存是透明的.你可以从配置文件修改你的缓存策略,不会对你的java代码造成任何影响.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值