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

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

 

举报

相关文章推荐

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

Software Version:IBatis.NET 1.6.2.0 MySQL :5.5.10 mysql-connector-net:6.4.3 visual studio 2010 -...

ASP.Net MVC开发基础学习笔记(1):走向MVC模式

原文出处: Edison Chou的博客(@周旭龙EdisonChou)    一、ASP.Net的两种开发模式 1.1 ASP.Net WebForm的开发模式 (1)处理流程 在传...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

详细分享IBatis.net缓存的使用方法

本文和大家分享一下IBatis.net缓存的使用方法。 首先在sqlmap.config中启用缓存 然后新建一个xml:CacheAccount.xml 并在sqlmap.c...

redis学习笔记(四)redis缓存与数据库一致性问题

redis与数据库数据一致性问题是个老生常谈的问题了,这里也没啥新鲜玩意,就是总结一下 不一致产生的原因我们在使用redis过程中,或者网上一些资料,通常会这样做:先读取缓存,如果缓存不存在,则读取数...

ADO.NET学习笔记(四)

(2)简单的利用CmboBox进行省市对应选择: using System; using System.Collections.Generic; using System.ComponentMo...

C Sharp与.net学习笔记(四)

接前面MAF,看看MEF插件框架(它是.NET4的组成部分,所以装个Visual C#2010 express) 和 MAF 比起来,这个易用性太高了。只需要定义一个接口,然后Import、Expo...

ASP.NET学习笔记(四)-模板页,HttpHandler,IHttpModule应用

C#模板页,HttpHandler,IHttpModule应用

Programming .NET Components 2nd 学习笔记(四)

4.3. .NET Garbage Collection 在.NET编程中,离开声明范围并不会销毁对象,但是不像COM,.NET不对对象使用引用计数。与之替代的,.NET有一个复杂的垃圾回收机制,当...

VB.net学习笔记(四)数据类型-值类型

1、System.Object    System.Object是VB.net所有类的父类(基类)。    把对象转换成其父类的类型时,只能使用父类提供的方法。    ToString方法可获得...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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