之前springmvc和mybatis整合的例子:
為mybatis新增ehcache快取,參考的
pom新增:
net.sf.ehcache
ehcache
2.8.3
org.mybatis
mybatis-ehcache
1.0.0
<?xml version="1.0" encoding="utf-8"
?>
<
ehcache
xmlns:xsi
=""xsi:nonamespaceschemalocation
="../bin/ehcache.xsd"
>
<
defaultcache
overflowtodisk
="true"
eternal
="false"
maxelementsinmemory
="1"
/>
<
diskstore
path
="s:/cache"
/>
ehcache
>
<
cache
type
="org.mybatis.caches.ehcache.loggingehcache"
>
<
property
name
="timetoidleseconds"
value
="3600"
/>
<
property
name
="timetoliveseconds"
value
="3600"
/>
<
property
name
="maxentrieslocalheap"
value
="1000"
/>
<
property
name
="maxentrieslocaldisk"
value
="10000000"
/>
<
property
name
="memorystoreevictionpolicy"
value
="lru"
/>
cache
>
這樣就新增完了,之後看下效果:
首先把txtestservice類下的throw new runtimeexception();注釋掉,因為現在需要進行批量插入資料。
開啟http://localhost:8080/test/druid/sql.html這個介面看sql查詢
然後開啟http://localhost:8080/test/txtest.do 進行插入資料
之後能在druid的監控頁面看到執行了100次insert。
然後開啟http://localhost:8080/test/indexlist.do
之後能在druid的監控頁面看到執行了1次select。
之後關閉瀏覽器,或者新開小號視窗,隱私視窗之類的再次訪問
發現在druid的監控介面依然只有1次select。
再開啟http://localhost:8080/test/txtest.do 進行插入資料。
druid監控的insert變為200次。
訪問http://localhost:8080/test/indexlist.do
之後看druid可以發現再次執行了1次select,總共select變為了2次
再開啟http://localhost:8080/test/indexlist.do
select次數依舊是2次。
這樣應該就能說明快取正常開啟了。
現在還有個問題,暫時還沒解決,快取髒讀取的問題:
如果我利用這個新的物件對user表進行操作。
繼而想到,表操作很多都是關聯操作,這樣的快取肯定存在一定問題,
尋求解決方案中。
又試了下:
即把配置放到ehcache.xml中:
<?xml version="1.0" encoding="utf-8"
?>
<
ehcache
xmlns:xsi
=""xsi:nonamespaceschemalocation
="../bin/ehcache.xsd"
>
<
defaultcache
overflowtodisk
="true"
eternal
="false"
maxelementsinmemory
="1"
timetoliveseconds
="10"
maxentrieslocalheap
="1000"
maxentrieslocaldisk
="10000000"
memorystoreevictionpolicy
="lru"
/>
<
diskstore
path
="s:/cache"
/>
ehcache
>
這樣timetoliveseconds就起作用了。
10秒重新整理。
暫時覺得就先這樣解決快取髒讀取的問題吧
MyBatis快取之二級快取 ehcache整合
二級快取允許手動管理 首先,二級快取可以跨session,只要在乙個sessionfactory範圍之內則允許跨session,但要想使用二級快取,需要手動進行配置 在 sqlmapconfig.xml 配置檔案中新增如下配置 包括之前的配置我一併貼上來了 也就是說,在mybatis框架中,只要是關...
ehcach快取問題
下面是我快取的配置檔案 我的測試 是 cachemanager manager1 new cachemanager ehcache.xml cache memoryonlycache manager1.getcache signal for int i 0 i 100000 i system.out...
mybatis之增加操作
1 切記切記 在impl類中一定要機上 session.commit 否則他不會提交 若沒有寫session.commit 則更新的資料沒有進行更新 進行add和update必須進行session.commit 2 就是內個id總是報null 那原因是為什麼呢?我的原因就是因為 沒有session....