博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IBatis.Net学习笔记四--数据库的缓存模式
阅读量:6826 次
发布时间:2019-06-26

本文共 1125 字,大约阅读时间需要 3 分钟。

在ibatis中提供了数据库缓存的模式,可以提高访问效率。对于一些不常更新的表可以直接利用ibatis的缓存方式。

要使用ibatis的数据库缓存,只要利用配置文件就可以了,实现起来比较简单:

        
<
select id
=
"
getcachedaccountsviaresultmap
"
                    resultmap
=
"
account-result
"
                    cachemodel
=
"
account-cache
" 
>
            select 
*
            from accounts
            order by account_id
        
</
select
>

最主要的就是cachemodel="account-cache",指定缓存的方式,如下,是具体配置缓存的地方:

    
<
cachemodels
>
        
<
cachemodel id
=
"
account-cache
"
 implementation
=
"
memory
" 
>
            
<
flushinterval hours
=
"
24
"
/>
            
<
flushonexecute  statement
=
"
updateaccountviainlineparameters
"
/>
            
<
flushonexecute  statement
=
"
updateaccountviaparametermap
"
/>
      
<
flushonexecute  statement
=
"
insertaccountviaparametermap
"
/>
      
<
property name
=
"
type
"
 value
=
"
weak
"
/>
        
</
cachemodel
>
        
    
</
cachemodels
>

其中:implementation="memory"是设置缓存的实现方式,可以指定lru、fifo等,有点类似于内存的页替换策略。memory是最常使用的一种方式。

flushonexecute设置的是当执行了这些语句时更新缓存。
配置好之后我进行了一个简单的测试,基本上是可以的,但也有一点问题:
1、第一次查询结果是4条记录,当我手工往数据库中插入一条记录时,第二次查询还是4条记录
2、当我把系统时间改成第二天(24小时后),再查,得到的结果是5条记录
3、当我执行了insertaccountviaparametermap语句插入一条记录时,再查询得到的是6条记录
也就是说:当系统中的表从不进行手工维护,也不由第三方程序修改时,可以使用数据库缓存的方式提高效率。
原文地址:

转载于:https://www.cnblogs.com/zyfking/archive/2009/01/19/1378508.html

你可能感兴趣的文章
运维安全系列基础服务之 FTP 服务(系列一)
查看>>
[LeetCode] House Robber I II
查看>>
Dagger依赖注入入门
查看>>
很好的东西
查看>>
没有 Python,微软宣布 Excel 新增 JavaScript 支持
查看>>
用70亿美元收购Mellanox,英伟达阔绰出手“打败”Intel ...
查看>>
北汽上汽广汽为有感科技站台:主机厂眼中的无线充电技术应具备什么? ...
查看>>
设计模式——外观模式
查看>>
struts2开发时通过interceptor拦截器实现输入数据过滤前后空格的功能 ...
查看>>
学C++走游戏方向,是不是非常艰难自找苦吃?
查看>>
名称,决定了平台的发展愿景——互联网平台建设系列 ...
查看>>
【图文】如何用云服务器搭建一个https的网站?
查看>>
对话赛灵思Gilles Garcia:深度糅合技术属性与客户需求,做极致的Xilinx式服务 ...
查看>>
我们的手机用上北斗导航了吗?
查看>>
MyBatis全局配置文件mybatis-config.xml
查看>>
rac库数据文件创建在os本地的解决办法
查看>>
SSH集成开发积分商城 之 11.3 实现积分商城层
查看>>
阿里巴巴AI夺肝结节诊断两项世界冠军,至今无人超越
查看>>
Salesforce的7步企业架构(EA)方法
查看>>
二叉树(二)
查看>>