IBatis.Net學習筆記(二)–數據庫的緩存模式 – JAVA編程語言程序開發技術文章

在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條記錄

 

也就是說:當系統中的表從不進行手工維護,也不由第三方程序修改時,可以使用數據庫緩存的方式提高效率

 

 

 

作者 awp110

發佈留言