MyBatis學習總結 七 Mybatis快取

2021-08-09 14:05:38 字數 1684 閱讀 3320

正如大多數持久層框架一樣,mybatis 同樣提供了一級快取二級快取的支援

一級快取: 基於perpetualcache 的 hashmap本地快取,其儲存作用域為session,當session flush 或 close之後,該session中的所有 cache 就將清空

2.二級快取,如 ehcache。

3. 對於快取資料更新機制,當某乙個作用域(一級快取session/二級快取namespaces)的進行了 c/u/d 操作後,預設該作用域下所有 select 中的快取將被clear。

1

package

me.gacl.test;23

import

me.gacl.domain.user;

4import

me.gacl.util.mybatisutil;

5import

org.apache.ibatis.session.sqlsession;

6import

org.junit.test;78

/**9

* @author

gacl

10* 測試一級快取

11*/

12public

class

testonelevelcache

59 }

<

namespace

>

<

cache

/>

2、測試二級快取

1

package

me.gacl.test;23

import

me.gacl.domain.user;

4import

me.gacl.util.mybatisutil;

5import

org.apache.ibatis.session.sqlsession;

6import

org.apache.ibatis.session.sqlsessionfactory;

7import

org.junit.test;89

/**10

* @author

gacl

11* 測試二級快取

12*/

13public

class

testtwolevelcache

36 }

1. 對映語句檔案中的所有select語句將會被快取。

2. 對映語句檔案中的所有insert,update和delete語句會重新整理快取。

3. 快取會使用least recently used(lru,最近最少使用的)演算法來收回。

4. 快取會根據指定的時間間隔來重新整理。

5. 快取會儲存1024個物件

cache標籤常用屬性:

<

cache

eviction

="fifo"

size="512"

readonly="true"/>

MyBatis學習總結 七 Mybatis快取

正如大多數持久層框架一樣,mybatis 同樣提供了一級快取和二級快取的支援 一級快取 基於perpetualcache 的 hashmap本地快取,其儲存作用域為session,當session flush 或 close之後,該session中的所有 cache 就將清空。2.二級快取,如 eh...

MyBatis學習總結 七 Mybatis快取

正如大多數持久層框架一樣,mybatis 同樣提供了一級快取和二級快取的支援 一級快取 基於perpetualcache 的 hashmap本地快取,其儲存作用域為session,當session flush 或 close之後,該session中的所有 cache 就將清空。2.二級快取,如 eh...

MyBatis學習總結 七 Mybatis快取

只為成功找方法,不為失敗找藉口!正如大多數持久層框架一樣,mybatis 同樣提供了一級快取和二級快取的支援 一級快取 基於perpetualcache 的 hashmap本地快取,其儲存作用域為session,當session flush 或 close之後,該session中的所有 cache ...