91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java應用開發中MyBayis緩存的示例分析

發布時間:2021-09-15 13:00:03 來源:億速云 閱讀:128 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“java應用開發中MyBayis緩存的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“java應用開發中MyBayis緩存的示例分析”這篇文章吧。

什么是 MyBatis 緩存

使?緩存可以減少 Java 應?與數據庫的交互次數,從而提升程序的運行效率。?如查詢出 id = 1 的對象,第?次查詢出之后會自動將該對象保存到緩存中,當下?次查詢時,直接從緩存中取出對象即可, 無需再次訪問數據庫。

MyBatis 緩存分類

1、?級緩存:SqlSession 級別,默認開啟,并且不能關閉。(默認開啟)

操作數據庫時需要創建 SqlSession 對象,在對象中有?個 HashMap ?于存儲緩存數據,不同的 SqlSession 之間緩存數據區域是互不影響的。 ?級緩存的作用域是 SqlSession 范圍的,當在同?個 SqlSession 中執?兩次相同的 SQL 語句事,第? 次執行完畢會將結果保存到緩存中,第?次查詢時直接從緩存中獲取。 需要注意的是,如果 SqlSession 執行了 DML 操作(insert、update、delete),MyBatis 必須將緩存清空以保證數據的準確性。

2、二級緩存:Mapper 級別,默認關閉,可以開啟。

使??級緩存時,多個 SqlSession 使?同?個 Mapper 的 SQL 語句操作數據庫,得到的數據會存在? 級緩存區,同樣是使? HashMap 進?數據存儲,相?較于?級緩存,?級緩存的范圍更?,多個 SqlSession 可以共??級緩存,?級緩存是跨 SqlSession 的。 ?級緩存是多個 SqlSession 共享的,其作?域是 Mapper 的同?個 namespace,不同的 SqlSession 兩次執?相同的 namespace 下的 SQL 語句,參數也相等,則第?次執?成功之后會將數據保存到?級 緩存中,第?次可直接從?級緩存中取出數據。

二級緩存如何使用

1、MyBatis 自帶的二級緩存

1.1config.xml 配置開啟?級緩存
settings>
 <!-- 打印SQL-->
 <setting name="logImpl" value="STDOUT_LOGGING" />
 <!-- 開啟延遲加載 -->
 <setting name="lazyLoadingEnabled" value="true"/>
 <!-- 開啟?級緩存 -->
 <setting name="cacheEnabled" value="true"/>
</settings>
1.2Mapper.xml 中配置?級緩存
<cache></cache>
1.3實體類實現序列化接口
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Account implements Serializable {
 private long id;
 private String username;
 private String password;
 private int age;
}

2、ehcache 二級緩存(第三方)

2.1pom.xml 添加相關依賴
<dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis-ehcache</artifactId>
 <version>1.0.0</version>
</dependency>
<dependency>
 <groupId>net.sf.ehcache</groupId>
 <artifactId>ehcache-core</artifactId>
 <version>2.4.3</version>
</dependency>
2.2添加 ehcache.xml
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
 <diskStore/>
 <defaultCache
 maxElementsInMemory="1000"
 maxElementsOnDisk="10000000"
 eternal="false"
 overflowToDisk="false"
 timeToIdleSeconds="120"
 timeToLiveSeconds="120"
 diskExpiryThreadIntervalSeconds="120"
 memoryStoreEvictionPolicy="LRU">
 </defaultCache>
</ehcache>
2.3config.xml 配置開啟?級緩存
<settings>
 <!-- 打印SQL-->
 <setting name="logImpl" value="STDOUT_LOGGING" />
 <!-- 開啟延遲加載 -->
 <setting name="lazyLoadingEnabled" value="true"/>
 <!-- 開啟?級緩存 -->
 <setting name="cacheEnabled" value="true"/>
</settings>
2.4 Mapper.xml 中配置?級緩存
<cache type="org.mybatis.caches.ehcache.EhcacheCache">
 <!-- 緩存創建之后,最后?次訪問緩存的時間?緩存失效的時間間隔 -->
 <property name="timeToIdleSeconds" value="3600"/>
 <!-- 緩存?創建時間起?失效的時間間隔 -->
 <property name="timeToLiveSeconds" value="3600"/>
 <!-- 緩存回收策略,LRU表示移除近期使?最少的對象 -->
 <property name="memoryStoreEvictionPolicy" value="LRU"/>
</cache>

以上是“java應用開發中MyBayis緩存的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

翁牛特旗| 富源县| 高清| 韶关市| 靖西县| 宁国市| 甘洛县| 万宁市| 全南县| 拜城县| 卫辉市| 教育| 莲花县| 玉龙| 调兵山市| 中卫市| 福州市| 连州市| 英吉沙县| 奈曼旗| 信阳市| 洛宁县| 郧西县| 平度市| 利川市| 宿州市| 赣州市| 依安县| 衡东县| 汾西县| 隆子县| 玛沁县| 阳江市| 通化县| 荆门市| 灵山县| 高平市| 南康市| 兖州市| 油尖旺区| 五河县|