IBatis.Net学习笔记四--数据库的缓存模式

转载 2007年09月19日 09:36:00

在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条记录

也就是说:当系统中的表从不进行手工维护,也不由第三方程序修改时,可以使用数据库缓存的方式提高效率。

 

Ibatisnet的数据库事务相关与总揽

学习和使用Ibatisnet已经有一段时间了,前段时间也有写过一些与iBatis相关的Blog。也答应过一些朋友要比较全面地介绍一下iBatis,分享自己的学习过程和使用经验,记录一些常见且容易出现的...
  • educast
  • educast
  • 2008年09月07日 16:58
  • 2278

让iBatisNet同时使用多个数据库

最近作项目,需要使用iBatisNet框架,但是数据库需要同时使用Oracle和Access,在网上查了很多文章都没有相关介绍。经过有一天的摸索(分析源码,测试),终于明白了。 首先,修改dao.co...
  • ocean20
  • ocean20
  • 2009年09月18日 12:41
  • 3672

实验四 数据库模式对象管理

一、实验目的 1)  掌握表、索引、索引化表的概念及管理 2)  掌握分区的概念及分区管理 3)  掌握外部表的概念及其管理 4)  了解簇、视图、序列、同义词、数据库链接等的管理 二、预习...
  • MJ813
  • MJ813
  • 2016年12月31日 20:26
  • 789

ibatis缓存机制cacheModel

cachemodel是ibatis里面自带的缓存机制,正确的应用能很好提升我们系统的性能。使用方法:在sqlmap的配置文件中加入 ...
  • u013628152
  • u013628152
  • 2015年08月18日 09:49
  • 4632

IBatis.NET连接MySQL数据库配置笔记

Software Version:IBatis.NET 1.6.2.0 MySQL :5.5.10 mysql-connector-net:6.4.3 visual studio 2010 -...
  • KissZjs
  • KissZjs
  • 2011年09月29日 11:03
  • 1745

IBatisNet的问题总结

1.一个未解决的 iBatisNet 并发访问问题iBatisNet 是通过 SqlMap 实例执行 SQL Statement 的, 一个 SqlMap 实例里封装了数据库连接和事务, 让人难受的是...
  • netjxz
  • netjxz
  • 2007年07月02日 13:14
  • 3217

Oracle学习笔记(四)——上机练习一

1、define命令可以用于定义哪种变量 a、number b、char c、varchar2 d、date 【b】 Host变量主要作用是起到一个替代变量的作用,是主机环境可以和...
  • shangqing1123
  • shangqing1123
  • 2016年04月06日 20:55
  • 609

Unity3D基础篇----Shader学习笔记(4)

这一篇,我们来继续学习Shader中纹理的添加以及实现纹理中凹凸的映射。
  • qq_30501909
  • qq_30501909
  • 2017年06月28日 21:56
  • 265

Oracle学习笔记(4)------------简单查询

学习Oracle感觉有点吃力,于是到网上找了一些学习线路,来有规律的学习,效率能高一些,分享给大家 Concepts                        |                 ...
  • u011225629
  • u011225629
  • 2015年05月26日 12:37
  • 1187

Shader学习笔记4

前两篇写的大多是表面着色器(SurfaceShader),有官方的,网上的,自己写的。自己看着都乱,当做仓库用吧。。。 然后就研究到了顶点和片段着色器,发现很自由,功能很多,但是不能处理光照。还有屏...
  • zzw8866755
  • zzw8866755
  • 2016年09月29日 20:02
  • 158
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IBatis.Net学习笔记四--数据库的缓存模式
举报原因:
原因补充:

(最多只允许输入30个字)