zoukankan      html  css  js  c++  java
  • IBatis.Net学习笔记(二)数据库的缓存模式

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

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

  • 相关阅读:
    ubuntu9.10在AMD 双核上的安装
    修改wamp默认安装下MySQL的root账户密码
    IE6 IE7 IE8 火狐浏览器兼容问题
    在windows xp下安装ubuntu9.10
    制作Ubuntu U 盘启动盘在ubuntu12.04中
    使用StackTraceElement封装,打印调试代码!
    String字符串拼接原理剖析
    List中的数据如何根据对象的某一个或多个字段排序引出Comparable和comparator的使用
    String类的split方法
    通过例子看六种异常处理的陋习
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/2052797.html
Copyright © 2011-2022 走看看