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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252791.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252791.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252791.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

初入Linux,M35作業第一彈,500字感想

畢業以后&#xff0c;做過很多工作&#xff0c;一直比較迷茫。來這邊上課&#xff0c;其實是我的好同學推薦我來報班的&#xff0c;因為他本身是做運維的&#xff0c;運維前景還可以&#xff0c;而且我對這個也感興趣。有一種冷&#xff0c;叫你媽覺得你冷&#xff0c;明明單衣…

【轉】一篇比較清晰簡單的C++文件操作

from:http://www.vckbase.com/document/viewdoc/?id1439 用C進行簡單的文件I/O操作 原文出處&#xff1a;Simple File I/O Using C 序論 我曾發表過文件輸入輸出的文章&#xff0c;現在覺得有必要再寫一點。文件 I/O 在C中比烤蛋糕簡單多了。 在這篇文章里&#xff0c;我 會詳…

交通治安卡口監控系統解決方案

隨著社會經濟發展、城鎮建設速度的加快&#xff0c;流動人口不斷增加&#xff0c;城市中人口密度逐漸加大&#xff0c;給城市治安監管帶來很大的壓力。因此采用高清網絡攝像監控系統以科技手段提高執法監督效率&#xff0c;成為有力推進“和諧社會”構建的最有力辦法。 同業興創…

細說shiro之三:在獨立應用中使用shiro

官網&#xff1a;https://shiro.apache.org/ 1. 下載在非Web環境的獨立應用中使用Shiro時&#xff0c;只需要shiro-core組件。在Maven項目中的依賴配置如下&#xff1a; <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</a…

高并發架構系列:Redis為什么是單線程、及高并發快的3大原因詳解

Redis的高并發和快速原因 1.redis是基于內存的&#xff0c;內存的讀寫速度非常快&#xff1b;2.redis是單線程的&#xff0c;省去了很多上下文切換線程的時間&#xff1b;3.redis使用多路復用技術&#xff0c;可以處理并發的連接。非阻塞IO 內部實現采用epoll&#xff0c;采用了…

2、C#基礎 - Visual Studio 的版本選擇和下載

有句話說&#xff1a;工欲善其事&#xff0c;必先利其器&#xff0c;我不推薦在學習一個語言時使用記事本練習&#xff0c;甚至說相當的排斥。當然了&#xff0c;你也可以選擇你自己喜歡的方式。本系列推薦使用的IDE為vs2017 community版&#xff0c;銀子不夠的同志不用怕&…

紅外攝像機的原理及選擇

一、紅外基本原理介紹 光是一種電磁波&#xff0c;它的波長區間從幾個納米&#xff08;1nm10-9m&#xff0c;十億分之一米&#xff09;到 1 毫米&#xff08;mm&#xff09;左右。人眼可見的只是其中一部分&#xff0c;我們稱其為可見光&#xff0c;可見光的波長范圍為 380nm …

第六章 預處理器

宏就是文字展開&#xff0c;實際中能夠展開寫出來發現錯誤。6.1 不能忽視宏定義中的空格 6.2 宏并非函數宏定義一個函數時&#xff0c;1、要把每一個參數用括號括起來2、同一時候也要把整個表達式括起來。3、要確保宏中的參數沒有副作用#define max(a,b) ((a)>(b)?(a):(b)…

oracle 數據庫中執行數據庫語句能找到數據,但是程序中卻抓取不到

oracle 數據庫中執行數據庫語句能找到數據&#xff0c;但是程序中卻抓取不到&#xff1f; 原因&#xff1a;數據庫中插入數據時沒有commit&#xff0c;執行COMMIT后就可以查詢到。轉載于:https://www.cnblogs.com/hanje/p/10140307.html

Python3經典100道練習題003

題目&#xff1a;一個整數&#xff0c;它加上100后是一個完全平方數&#xff0c;再加上268又是一個完全平方數&#xff0c;請問該數是多少&#xff1f; 方法&#xff1a;利用循環去判斷x100和x268是否為完全平方數&#xff0c;沒用使用其他函數&#xff0c;缺點運算速度慢 1 x-…

紅外攝像機

在監控市場中&#xff0c;紅外攝像機之所以那么受市場的歡迎&#xff0c;主要還是因為它有強勁的夜視性能。市場上&#xff0c;普通的彩色攝像機基本上沒有夜視能力&#xff0c;如果需要在夜晚獲得清晰的圖像&#xff0c;必須借助額外的可見光源照明才能實現。那么監控攝像機系…

P3375 【模板】KMP字符串匹配

題目描述 如題&#xff0c;給出兩個字符串s1和s2&#xff0c;其中s2為s1的子串&#xff0c;求出s2在s1中所有出現的位置。 為了減少騙分的情況&#xff0c;接下來還要輸出子串的前綴數組next。如果你不知道這是什么意思也不要問&#xff0c;去百度搜[kmp算法]學習一下就知道了。…

[譯] 用 Shadow DOM v1 和 Custom Elements v1 實現一個原生 Web Component

原文地址&#xff1a;Make a Native Web Component with Custom Elements v1 and Shadow DOM v1原文作者&#xff1a;Pearl Latteier譯文出自&#xff1a;掘金翻譯計劃本文永久鏈接&#xff1a;github.com/xitu/gold-m…譯者&#xff1a;newraina校對者&#xff1a;CoderMing假…

php 原生文件下載

1.整個網頁的html界面源碼下載: xiazai.php <html> <head> <meta charset "utf-8"> <title></title> </head> <body> <form method"post" action"xiazai.php"> <input type"submit&quo…

紅外線攝像機的選擇與使用及原理

紅外線攝像機的選擇與使用及原理 用戶使用紅外燈首先要仔細閱讀使用說明書&#xff0c;特別是為保證人身設備安全的注意事項。檢查前面所講述的配套性方面是否達到要求&#xff0c;應考慮到的影響因素是否考慮到&#xff0c;如未達到要求&#xff0c;可及時調整所用器材。 紅…

asp 之 讓實體中字段類型為DateTime的字段僅僅顯示日期不顯示時間

在我們平時的工作開發中。我們一般會遇到這種一個問題&#xff1a;某個實體的某個字段是DateTime類型的&#xff0c;但是我們在界面上僅僅想讓它顯示日期不顯示時間&#xff01;一個訂單實體&#xff1a;//訂單類public class order{//訂單IDpublic int id{get;set;}//物品IDpu…

JQ的異步文件上傳

一,view代碼 <form role"form"><div class"form-group"><label for"keyinput">選擇文件&#xff1a;</label><input type"file" name"upfile" id"upfile" /></div><div c…

紅外成像與微光成像的區別

在現有的安防技術中,微光和紅外成像是運用最廣的夜視技術.而微光成像主要運用在反恐偵查,部隊作戰的夜視儀中、而紅外夜視成像主要用于監控攝像機的夜間監控較多.   微光成像技術微光夜視技術又稱像增強技術&#xff0c;是通過帶像增強管的夜視鏡&#xff0c;對夜天光照亮的微…

實體類和數據表的映射異常(XXX is not mapping[ ])

在使用SSH框架開發過程&#xff0c;使用hibernate框架提供的工具類實現與數據庫數據交互&#xff0c;在執行cmd操作時&#xff0c;如果出現以下異常&#xff1a; org.hibernate.hql.ast.QuerySyntaxException: xxx is not mapped [from xxx] 或者 nested exception is org.hibe…

Linux下配置LVM

1 LVM介紹LVM(Logical Volume Manager)邏輯卷管理&#xff0c;它是Linux環境下對磁盤分區進行管理的一種機制&#xff0c;LVM是建立在硬盤和分區之上的一個邏輯層&#xff0c;來提高磁盤分區管理的靈活性。通過LVM系統管理員可以輕松管理磁盤分區&#xff0c;邏輯卷管理器的技術…