使用快取可以使應用更快地獲取資料,避免頻繁的資料庫互動,通俗點講就是加快查詢速度。
一般mybatis快取,都是指二級快取,一級快取缺省會開啟。
myatis的一級快取存在於sqlsession的生命週期中,在同乙個sqlsession中查詢時,mybatis會把執行的方法和引數通過演算法生成快取的鍵值,將鍵值和查詢結果存入乙個map物件中。
需要關閉一級快取的話:flushcache="true"就行了。
"selectbyid" flushcache=
"true" resultmap=
"rolemap"
>
select * from role where id = #
<
/select>
mybatis的二級快取它的生命週期存在於sqlsessionfactory的生命週期中。
<
!--二級快取的全域性開關,預設是開啟的狀態--
>
"cacheenabled" value=
"true"
/>
<
!>
"fifo" 快取**策略:lru(最近最少使用)fifo(先進先出)soft(軟引用)weak(弱引用)
flushinterval=
"60000" 重新整理時間間隔
size=
"512" 引用數目
readonly=
"true"
/> 唯讀
介面中配置
@cachenamespace(只有開啟註解快取時,只需加註解@cachenamespace即可)
//@cachenamespaceref(sysrolerepository.class)//註解開啟參照快取;當同時使用註解方式和xml對映檔案時,如果同時配置上了二級快取,會丟擲異常,所以需要使用參照快取的方式。
public
inte***ce
sysrolerepository
{ sysrole selectbyid
(long id)
;同樣xml中也可以配置參照快取
"com.example.repository.sysrolerepository"
>
參照快取除了能夠通過引用其他快取減少配置外,主要的作用是解決髒讀的問題。
Mybatis快取配置
pom檔案配置 org.mybatis mybatis 3.4.1 org.mybatis mybatis spring 1.3.0 org.mybatis.caches mybatis ehcache 1.1.0 net.sf.ehcache ehcache core 2.5.3 spring載入...
Mybatis快取配置
pom檔案配置 org.mybatis mybatis 3.4.1 org.mybatis mybatis spring 1.3.0 org.mybatis.caches mybatis ehcache 1.1.0 net.sf.ehcache ehcache core 2.5.3 ehcache....
Mybatis快取配置
pom檔案配置 org.mybatis mybatis 3.4.1 org.mybatis mybatis spring 1.3.0 org.mybatis.caches mybatis ehcache 1.1.0 net.sf.ehcache ehcache core 2.5.3 ehcache....