日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mybatis缓存配置

發布時間:2023/12/13 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mybatis缓存配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pom文件配置:

<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.1</version> </dependency> <dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version> </dependency> <dependency><groupId>org.mybatis.caches</groupId><artifactId>mybatis-ehcache</artifactId><version>1.1.0</version> </dependency> <dependency><groupId>net.sf.ehcache</groupId><artifactId>ehcache-core</artifactId><version>2.5.3</version> </dependency>


spring加載ehcache配置文件

<!-- 緩存管理器 --><bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"><property name="cacheManagerConfigFile" value="classpath:ehcache.xml" /></bean>
ehcache.xml:


<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="http://ehcache.xsd"><!--diskStore:緩存數據持久化的目錄 地址 --><diskStore path="java.io.tmpdir" /><defaultCache maxElementsInMemory="1000"maxElementsOnDisk="10000000" eternal="false" overflowToDisk="false"diskPersistent="false" timeToIdleSeconds="120" timeToLiveSeconds="120"diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU"></defaultCache></ehcache>

mybatis.xml開啟緩存:

<settings><!-- 開啟緩存 --><setting name="cacheEnabled" value="true" /><!-- 支持駝峰 --><setting name="mapUnderscoreToCamelCase" value="true" /><!-- lazyLoadingEnabled:延遲加載啟動,默認是false --><setting name="lazyLoadingEnabled" value="false" /><!-- aggressiveLazyLoading:積極的懶加載,false的話按需加載,默認是true --><setting name="aggressiveLazyLoading" value="true" /></settings>


然后在對應的mapper.xml里面加上

<!-- 開啟二級緩存 --><cache type="org.mybatis.caches.ehcache.EhcacheCache"><property name="timeToIdleSeconds" value="3600" /><!--1 hour --><property name="timeToLiveSeconds" value="3600" /><!--1 hour --><property name="maxEntriesLocalHeap" value="1000" /><property name="maxEntriesLocalDisk" value="10000000" /><property name="memoryStoreEvictionPolicy" value="LRU" /></cache>

(1)property參數配置不加也可以,都會有一個默認值,大家也可以查查一共有哪些配置,然后根據自己的需要來配置,然后這個配置是會帶上cache執行的日志,如果不要帶日志可以把LogginEhcache改成EhcacheCache。
(2)如果readOnly為false,此時要結果集對象必須是可序列化的。需要將實體對象implements Serializable


上面這個是全局設置,在每條單獨的sql語句上,還可以有局部設置,比如:

<select id="getOrder" parameterType="int" resultType="TOrder" useCache="false">
...
</select>

useCache="false"表示該select語句不使用緩存(即使xml最開頭的全局cache啟用)

默認情況下,如果全局開啟了緩存,insert/update/delete成功后,會自動刷新相關的緩存項,但有一點要特別注意:在mybatis與hibernate混用時,由于mybatis與hibernate的緩存是無關的,如果用mybatis做select查詢,用hibernate做insert/update/delete,hibernate對數據的修改,并不會刷新mybatis的緩存。

轉載于:https://www.cnblogs.com/zhousiwei/p/10625833.html

總結

以上是生活随笔為你收集整理的Mybatis缓存配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。