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

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

  • 相关阅读:
    深入理解并发编程 -- 多线程(一)
    使用Mybatis实现动态SQL(二)
    Java设计模式
    使用Mybatis实现动态SQL(一)
    Java
    Java安全(权限)框架
    List-LinkedList、set集合基础增强底层源码分析
    hadoop3.1.0 window win7 基础环境搭建
    springmvc传递有特殊字符的路径参数
    jhipster(springboot+datatable+jpa)后台分页,总结
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/2052797.html
Copyright © 2011-2022 走看看