国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

深入剖析MyBatis緩存機制

這篇具有很好參考價值的文章主要介紹了深入剖析MyBatis緩存機制。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

深入剖析MyBatis緩存機制,mybatis,緩存,java

深入剖析MyBatis緩存機制,mybatis,緩存,java

第1章:引言

大家好,我是小黑。今天我們要聊的是MyBatis的緩存機制。作為Java開發(fā)中經(jīng)常使用的持久層框架,MyBatis以其靈活性和簡便性而廣受歡迎。但你知道嗎,很多時候,正是因為這些特點,我們需要更深入地理解它的內(nèi)部工作原理,尤其是緩存機制。這不僅能幫助我們更高效地使用MyBatis,還能在出現(xiàn)問題時快速定位和解決。

緩存機制,簡單來說,就是暫時存儲數(shù)據(jù)的一種方式,以便于快速訪問。在MyBatis中,它主要用于減少數(shù)據(jù)庫的訪問次數(shù),提高查詢效率。MyBatis提供了兩級緩存:一級緩存和二級緩存。這兩種緩存有不同的作用域和生命周期,理解它們的區(qū)別對于使用MyBatis至關(guān)重要。

第2章:MyBatis緩存概覽

一般來說,MyBatis的緩存分為一級緩存和二級緩存。一級緩存是默認(rèn)開啟的,它基于SqlSession級別,也就是說,只在SqlSession開啟和關(guān)閉之間有效。而二級緩存則是基于namespace級別的,這意味著它可以跨SqlSession共享數(shù)據(jù)。

當(dāng)咱們執(zhí)行一個數(shù)據(jù)庫查詢時,MyBatis首先會查看緩存中是否已經(jīng)有這個查詢的結(jié)果。如果有,直接從緩存中獲取數(shù)據(jù),這樣就避免了對數(shù)據(jù)庫的訪問,極大地提高了效率。如果沒有,它才會執(zhí)行SQL語句,然后將結(jié)果存入緩存。

來,我們用個簡單的例子來看看一級緩存是怎么工作的。假設(shè)咱們有一個查詢用戶信息的操作,代碼大概是這樣的:

// 創(chuàng)建SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
    // 獲取Mapper
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    // 第一次查詢,結(jié)果會放在一級緩存中
    User user = mapper.selectUserById(1);
    // 再次查詢同一個ID的用戶
    User sameUser = mapper.selectUserById(1);
} finally {
    sqlSession.close();
}

在這個例子中,第二次查詢同一個ID的用戶時,MyBatis不會再去執(zhí)行SQL語句,而是直接從一級緩存中獲取數(shù)據(jù)。這個過程對用戶是透明的,但背后卻節(jié)省了大量的數(shù)據(jù)庫訪問時間。

二級緩存的工作原理類似,不過它是跨SqlSession的。這意味著,即使SqlSession關(guān)閉了,只要是同一個namespace下的SqlSession,都可以訪問到這個緩存。不過,使用二級緩存需要一些額外的配置。

明白了這些,咱們在使用MyBatis時就能更加得心應(yīng)手了。知道怎么樣,通過合理的緩存策略,可以大大提高應(yīng)用的性能。不過,記得緩存也不是萬能的,不當(dāng)?shù)氖褂猛瑯訒韱栴},比如數(shù)據(jù)不一致性等。所以,合理配置和使用MyBatis的緩存機制,對于開發(fā)高效、穩(wěn)定的Java應(yīng)用來說是非常關(guān)鍵的。

接下來,咱們繼續(xù)深入探討MyBatis緩存的具體細節(jié),看看它是怎樣在幕后默默優(yōu)化我們的數(shù)據(jù)訪問的。了解這些原理,對于咱們解決實際開發(fā)中遇到的性能瓶頸和問題是大有裨益的。別小看這些幕后的英雄,它們往往能在關(guān)鍵時刻大顯身手。

MyBatis的一級緩存和二級緩存雖然目的相同,都是為了減少數(shù)據(jù)庫的訪問,提高效率,但它們的作用范圍和使用方式卻大有不同。掌握它們的特性和適用場景,能讓咱們更加靈活地處理各種數(shù)據(jù)訪問需求。

第3章:一級緩存深度解析

一級緩存的工作原理

一級緩存,也稱為本地緩存,它默認(rèn)是開啟的。它的作用域是SqlSession。這意味著,當(dāng)咱們在一個SqlSession中執(zhí)行查詢操作時,MyBatis會將查詢結(jié)果存儲在這個SqlSession的緩存中。如果后續(xù)有相同的查詢操作,MyBatis會直接從緩存中獲取結(jié)果,而不是再次訪問數(shù)據(jù)庫。

來看看一級緩存的一個簡單示例。假設(shè)小黑現(xiàn)在要查詢一個用戶的信息,代碼大致如下:

// 創(chuàng)建SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
    // 獲取UserMapper接口
    UserMapper mapper = sqlSession.getMapper(UserMapper.class);
    // 查詢用戶信息,ID為1
    User user1 = mapper.selectUserById(1);
    // 再次查詢相同ID的用戶
    User user2 = mapper.selectUserById(1);
} finally {
    sqlSession.close();
}

在這個例子中,user1和user2其實是同一個對象。當(dāng)?shù)谝淮尾樵冇脩粜畔r,MyBatis將結(jié)果存儲在一級緩存中。第二次查詢相同ID的用戶時,MyBatis直接從一級緩存中獲取數(shù)據(jù),而不需要再次訪問數(shù)據(jù)庫。

一級緩存的生命周期和作用域

一級緩存的生命周期和SqlSession一致。當(dāng)SqlSession結(jié)束或關(guān)閉時,與之關(guān)聯(lián)的一級緩存也就不存在了。這也是為什么它被稱為本地緩存的原因。它只對當(dāng)前的SqlSession有效,不能跨SqlSession共享數(shù)據(jù)。

管理一級緩存

雖然一級緩存默認(rèn)是開啟的,但在某些情況下,咱們可能需要清空或繞過緩存。比如,當(dāng)執(zhí)行了INSERT、UPDATE或DELETE操作后,緩存中的數(shù)據(jù)可能就不再是最新的了。這時候,咱們可以手動清空緩存,以確保數(shù)據(jù)的一致性。

// 執(zhí)行更新操作
mapper.updateUser(user);
// 手動清空一級緩存
sqlSession.clearCache();

在這個例子中,更新操作之后,我們調(diào)用了sqlSession.clearCache()方法來清空緩存。這樣做可以避免臟讀,確保數(shù)據(jù)的準(zhǔn)確性。

一級緩存是MyBatis為了提高數(shù)據(jù)處理效率而提供的一個特性。它在單個SqlSession的范圍內(nèi)有效,可以減少對數(shù)據(jù)庫的訪問次數(shù)。但同時,也需要注意它的生命周期和作用域,合理管理緩存,以避免數(shù)據(jù)不一致的問題。理解了這些,咱們在使用MyBatis時就能更加得心應(yīng)手,有效提升數(shù)據(jù)處理的效率和準(zhǔn)確性。

第4章:二級緩存深度解析

二級緩存的工作原理

二級緩存是基于namespace的。當(dāng)多個SqlSession操作相同namespace的映射器(Mapper)時,它們可以共享同一個二級緩存區(qū)域。例如,如果多個SqlSession都使用了相同的UserMapper,那么它們就可以共享UserMapper的二級緩存。

在MyBatis配置文件中開啟二級緩存是非常簡單的。只需要在mybatis-config.xml文件中添加如下配置:

<configuration>
    <settings>
        <!-- 開啟全局二級緩存 -->
        <setting name="cacheEnabled" value="true"/>
    </settings>
</configuration>

接下來,在Mapper映射文件中也需要進行配置:

<mapper namespace="com.example.mapper.UserMapper">
    <!-- 開啟這個Mapper的二級緩存 -->
    <cache/>
    <!-- 其他SQL映射語句 -->
</mapper>

在這里,我們通過<cache/>標(biāo)簽開啟了UserMapper的二級緩存。

使用二級緩存的步驟

使用二級緩存,需要先進行全局配置和Mapper級別的配置,接著就可以在實際的操作中體會到它帶來的便利了。比如,當(dāng)?shù)谝粋€SqlSession查詢了某個用戶的信息并關(guān)閉后,這個信息會被存儲在二級緩存中。當(dāng)另一個SqlSession再次查詢相同的數(shù)據(jù)時,就可以直接從二級緩存中獲取,而不必再次訪問數(shù)據(jù)庫。

這里用一個例子來說明:

// 第一個SqlSession
SqlSession sqlSession1 = sqlSessionFactory.openSession();
try {
    UserMapper mapper1 = sqlSession1.getMapper(UserMapper.class);
    // 第一次查詢,會將數(shù)據(jù)存儲在二級緩存中
    User user1 = mapper1.selectUserById(1);
} finally {
    sqlSession1.close();
}

// 第二個SqlSession
SqlSession sqlSession2 = sqlSessionFactory.openSession();
try {
    UserMapper mapper2 = sqlSession2.getMapper(UserMapper.class);
    // 第二次查詢,會嘗試從二級緩存中獲取數(shù)據(jù)
    User user2 = mapper2.selectUserById(1);
} finally {
    sqlSession2.close();
}

深入剖析MyBatis緩存機制,mybatis,緩存,java

二級緩存的作用域與生命周期

二級緩存的生命周期跟SqlSessionFactory一致。它開始于SqlSessionFactory被創(chuàng)建,結(jié)束于SqlSessionFactory被關(guān)閉。二級緩存的作用范圍是整個SqlSessionFactory范圍內(nèi)的所有SqlSession,只要它們操作相同的Mapper接口。

第5章:緩存策略與實現(xiàn)

不同緩存策略介紹

在MyBatis中,常見的緩存策略有:先進先出(FIFO)、最近最少使用(LRU)、軟引用(Soft)和弱引用(Weak)。每種策略都有其特點和適用場景。

  1. FIFO(First In First Out):這種策略是按照對象進入緩存的順序來移除它們。最早進入的對象會最先被移除。
  2. LRU(Least Recently Used):最近最少使用的對象會被首先移除。這種策略是基于對象被訪問的次數(shù)和頻率,適用于大部分緩存場景。
  3. 軟引用(Soft Reference):在這種策略下,對象會被封裝在軟引用中。當(dāng)JVM內(nèi)存不足時,這些對象可能會被垃圾回收器回收。
  4. 弱引用(Weak Reference):類似于軟引用,但生命周期更短。在JVM進行垃圾回收時,這些對象更有可能被回收。
自定義緩存策略

MyBatis允許我們自定義緩存策略。這意味著我們可以根據(jù)具體的應(yīng)用需求設(shè)計和實現(xiàn)自己的緩存邏輯。比如,我們可能需要一個復(fù)合策略,結(jié)合LRU和軟引用。

在MyBatis中,自定義緩存策略需要實現(xiàn)org.apache.ibatis.cache.Cache接口。這個接口包含了緩存操作所需的基本方法,如getObject、putObject、removeObject等。

下面是一個簡單的自定義緩存實現(xiàn)示例:

public class CustomCache implements Cache {
    // 緩存標(biāo)識符
    private final String id;

    public CustomCache(String id) {
        this.id = id;
    }

    @Override
    public String getId() {
        return id;
    }

    @Override
    public void putObject(Object key, Object value) {
        // 實現(xiàn)添加緩存邏輯
    }

    @Override
    public Object getObject(Object key) {
        // 實現(xiàn)獲取緩存邏輯
        return null;
    }

    @Override
    public Object removeObject(Object key) {
        // 實現(xiàn)移除緩存邏輯
        return null;
    }

    @Override
    public void clear() {
        // 實現(xiàn)清空緩存邏輯
    }

    @Override
    public int getSize() {
        // 實現(xiàn)獲取緩存大小邏輯
        return 0;
    }
}

在這個自定義緩存中,我們定義了緩存的基本操作。根據(jù)實際需求,可以在這些方法中實現(xiàn)具體的緩存策略。

實例分析:選擇合適的緩存策略

選擇合適的緩存策略對于提高應(yīng)用性能至關(guān)重要。例如,對于讀多寫少的應(yīng)用,LRU可能是一個不錯的選擇。而對于內(nèi)存敏感的應(yīng)用,使用軟引用或弱引用策略可能更合適。

第6章:緩存失效與維護

緩存失效的場景

在MyBatis中,緩存失效主要發(fā)生在以下幾種情況:

  1. 數(shù)據(jù)更新:當(dāng)執(zhí)行UPDATE、DELETE或INSERT操作時,與這些操作相關(guān)的緩存數(shù)據(jù)可能會變得過時。此時,為了保證數(shù)據(jù)的一致性,需要使緩存失效。
  2. SqlSession關(guān)閉:對于一級緩存來說,當(dāng)SqlSession關(guān)閉或者提交時,緩存就會失效。
  3. 手動清除:我們可以通過編程的方式手動清除緩存。
緩存維護的最佳實踐

為了保證數(shù)據(jù)的準(zhǔn)確性和一致性,咱們需要采取一些措施來維護緩存。下面是一些最佳實踐:

  1. 合理使用緩存:不是所有情況都適合使用緩存。比如,對于經(jīng)常變動的數(shù)據(jù),使用緩存可能會帶來更多的問題。
  2. 更新數(shù)據(jù)時清除緩存:在進行數(shù)據(jù)更新操作時,及時清除或更新相關(guān)的緩存。
  3. 合理配置緩存大小:避免緩存占用過多內(nèi)存,合理配置緩存大小和清除策略。
如何處理緩存并發(fā)問題

在并發(fā)環(huán)境下,緩存可能會引起一些問題,比如臟讀或者不一致的情況。處理這些并發(fā)問題,需要我們在設(shè)計時就考慮周全。

舉個例子,如果兩個用戶同時讀取并更新同一個數(shù)據(jù),就可能產(chǎn)生并發(fā)問題。在這種情況下,咱們可以使用樂觀鎖或悲觀鎖來控制。樂觀鎖通常是通過版本號來實現(xiàn),而悲觀鎖則是直接鎖定數(shù)據(jù)行。

// 樂觀鎖更新數(shù)據(jù)的例子
public void updateUser(User user) {
    int version = user.getVersion();
    user.setVersion(version + 1);
    int result = mapper.updateUser(user);
    if (result == 0) {
        // 更新失敗,數(shù)據(jù)可能已被其他用戶修改
    }
}

在這個例子中,我們通過增加版本號來實現(xiàn)樂觀鎖。如果在更新時發(fā)現(xiàn)版本號不匹配,就意味著數(shù)據(jù)可能已經(jīng)被其他用戶更新,此時可以進行相應(yīng)的處理,比如重試或者提示用戶。

第7章:性能優(yōu)化與實踐案例

通過緩存優(yōu)化MyBatis性能

MyBatis的緩存機制,如果使用得當(dāng),可以顯著提升應(yīng)用的響應(yīng)速度和處理能力。這里有幾個要點需要注意:

  1. 合理選擇緩存級別:根據(jù)應(yīng)用的具體需求,決定是使用一級緩存、二級緩存,還是兩者結(jié)合。
  2. 適當(dāng)配置緩存參數(shù):根據(jù)數(shù)據(jù)量和訪問頻率,調(diào)整緩存大小、清除策略等參數(shù)。
  3. 避免不必要的緩存:對于頻繁變動的數(shù)據(jù),使用緩存可能會帶來更多問題而非好處。
實戰(zhàn)案例分析:在不同場景下的緩存應(yīng)用

讓我們通過一個實際案例來看看如何在MyBatis中應(yīng)用緩存。假設(shè)小黑正在開發(fā)一個電商平臺,其中商品信息的讀取操作非常頻繁,但更新操作相對較少。

在這種情況下,合理使用MyBatis的二級緩存是一個不錯的選擇。首先,我們需要在MyBatis配置文件中啟用二級緩存,然后在商品信息的Mapper映射文件中添加緩存配置。

<mapper namespace="com.example.mapper.ProductMapper">
    <cache eviction="LRU" flushInterval="60000" size="512" readOnly="true"/>
    <!-- 其他SQL映射語句 -->
</mapper>

在這個配置中,eviction="LRU"指定了使用最近最少使用的清除策略,flushInterval="60000"表示緩存每60秒刷新一次

,size="512"設(shè)置了緩存的大小,而readOnly="true"表明緩存數(shù)據(jù)是只讀的。

// 使用緩存查詢商品信息的示例
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
    ProductMapper mapper = sqlSession.getMapper(ProductMapper.class);
    // 查詢商品信息,ID為123
    Product product = mapper.selectProductById(123);
    // 后續(xù)相同ID的查詢將直接從緩存中獲取數(shù)據(jù)
} finally {
    sqlSession.close();
}

深入剖析MyBatis緩存機制,mybatis,緩存,java

在這個例子中,當(dāng)?shù)谝淮尾樵僆D為123的商品信息時,查詢結(jié)果會被緩存在二級緩存中。后續(xù)對同一商品的查詢將直接從緩存中獲取數(shù)據(jù),從而減少數(shù)據(jù)庫的訪問次數(shù),提高查詢效率。

在實際應(yīng)用中,還可以根據(jù)需要調(diào)整緩存的配置。比如,對于一些熱門商品,可以將它們的信息緩存時間設(shè)置得更長一些;而對于那些不經(jīng)常變動的數(shù)據(jù),可以使用更大的緩存。

第8章:總結(jié)

本篇博客,咱們深入探討了MyBatis的一級和二級緩存。一級緩存幫助我們在一個SqlSession內(nèi)部減少對數(shù)據(jù)庫的訪問,而二級緩存則擴展了這種優(yōu)化到多個SqlSession,甚至整個應(yīng)用的范圍。

我們還討論了不同的緩存策略,如FIFO、LRU、軟引用和弱引用,以及如何根據(jù)應(yīng)用的需求選擇合適的策略。通過案例,我們看到了緩存在實際應(yīng)用中的威力,它可以顯著提高性能,但同時也需要注意數(shù)據(jù)一致性和緩存維護的問題。

關(guān)于MyBatis緩存機制的深入分析就聊到這里。希望這些內(nèi)容對大家有所幫助~文章來源地址http://www.zghlxwxcb.cn/news/detail-811196.html

到了這里,關(guān)于深入剖析MyBatis緩存機制的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Mybatis中的緩存機制(一文帶你弄懂)

    Mybatis中的緩存機制(一文帶你弄懂)

    緩存的作?:通過減少IO的?式,來提?程序的執(zhí)?效率。 緩存就是指存在內(nèi)存中的臨時數(shù)據(jù),使用緩存能夠減少和數(shù)據(jù)庫交互的次數(shù),提高效率。將相同查詢條件的sql語句執(zhí)行一遍后得到的結(jié)果存在內(nèi)存或者某種緩存介質(zhì)中,當(dāng)下次遇到一模一樣的查詢sql時候不在執(zhí)行sql與

    2024年02月11日
    瀏覽(18)
  • 深入實現(xiàn) MyBatis 底層機制的任務(wù)階段4 - 開發(fā) Mapper 接口和 Mapper.xml

    深入實現(xiàn) MyBatis 底層機制的任務(wù)階段4 - 開發(fā) Mapper 接口和 Mapper.xml

    ??前言 在我們的自定義 MyBatis 底層機制實現(xiàn)過程中,我們已經(jīng)深入研究了多個任務(wù)階段,包括配置文件的讀取、數(shù)據(jù)庫連接的建立、執(zhí)行器的編寫,以及 SqlSession 的封裝。每個任務(wù)階段都為我們揭示了 MyBatis 內(nèi)部工作原理的一部分,為構(gòu)建完整的底層框架打下了堅實的基礎(chǔ)

    2024年02月09日
    瀏覽(22)
  • Java_Mybatis_緩存

    Java_Mybatis_緩存

    Mybatis 緩存:MyBatis 內(nèi)置了一個強大的事務(wù)性查詢緩存機制,它可以非常方便地配置和定制 sqlSession 級別的,也就是說,使用同一個 sqlSession 查詢同一 sql 時,直接從緩存數(shù)據(jù)中取,不需要操作數(shù)據(jù)庫 失效情況 同一個 sqlSession 條件不同 同一個 sqlSession 執(zhí)行期間執(zhí)行了增加、刪

    2024年02月04日
    瀏覽(14)
  • “深入剖析JVM內(nèi)部機制:理解Java虛擬機的工作原理“

    標(biāo)題:深入剖析JVM內(nèi)部機制:理解Java虛擬機的工作原理 介紹: Java虛擬機(JVM)是Java語言的核心組件,負(fù)責(zé)將Java源代碼轉(zhuǎn)換為可以在計算機上運行的機器碼。了解JVM的內(nèi)部機制對于開發(fā)人員來說非常重要,因為它可以幫助我們更好地理解Java程序的運行行為和性能優(yōu)化。本文

    2024年02月12日
    瀏覽(30)
  • “深入剖析JVM內(nèi)部機制:了解Java虛擬機的工作原理“

    標(biāo)題:深入剖析JVM內(nèi)部機制:了解Java虛擬機的工作原理 摘要:本文將深入剖析JVM內(nèi)部機制,詳細介紹Java虛擬機的工作原理。我們將探討JVM的組成部分、類加載過程、內(nèi)存管理、垃圾回收以及即時編譯等關(guān)鍵概念。此外,還將提供示例代碼來幫助讀者更好地理解JVM的內(nèi)部機制

    2024年02月11日
    瀏覽(29)
  • “深入剖析JVM內(nèi)部機制:探索Java虛擬機的運行原理“

    標(biāo)題:深入剖析JVM內(nèi)部機制:探索Java虛擬機的運行原理 摘要:本文將深入探討Java虛擬機(JVM)的內(nèi)部機制,包括類加載、內(nèi)存管理、垃圾回收、即時編譯等關(guān)鍵概念和原理,幫助開發(fā)者更好地理解JVM的運行機制。 正文: 一、類加載機制 Java虛擬機通過類加載機制將字節(jié)碼文

    2024年02月14日
    瀏覽(42)
  • Java Web現(xiàn)代化開發(fā):Spring Boot + Mybatis + Redis二級緩存

    Java Web現(xiàn)代化開發(fā):Spring Boot + Mybatis + Redis二級緩存

    Spring-Boot因其提供了各種開箱即用的插件,使得它成為了當(dāng)今最為主流的Java Web開發(fā)框架之一。Mybatis是一個十分輕量好用的ORM框架。Redis是當(dāng)今十分主流的分布式key-value型數(shù)據(jù)庫,在web開發(fā)中,我們常用它來緩存數(shù)據(jù)庫的查詢結(jié)果。 本篇博客將介紹如何使用Spring-Boot快速搭建一

    2024年01月17日
    瀏覽(19)
  • java項目性能優(yōu)化(MyBatis中開啟查詢緩存及flushCache與useCache的使用)

    在java項目中,如果需要大量的DB查詢,導(dǎo)致緩存過多,項目運行緩慢,可以設(shè)置在select查詢時,添加二級緩存的清空。 如果沒有去配置flushCache、useCache,那么默認(rèn)是啟用緩存的。 1,flushCache默認(rèn)為false,表示任何時候語句被調(diào)用,都不會去清空本地緩存和二級緩存。 2,useC

    2024年01月20日
    瀏覽(19)
  • 深入解析Mybatis-Plus框架:簡化Java持久層開發(fā)(二)

    深入解析Mybatis-Plus框架:簡化Java持久層開發(fā)(二)

    博客地址: CSDN :https://blog.csdn.net/powerbiubiu 本章節(jié)開始從實際的應(yīng)用場景,來講解Mybatis-Plus常用的一些操作,根據(jù)業(yè)務(wù)場景來進行增刪改查的功能,首先先搭建一個項目。 1 搭建數(shù)據(jù)庫 根據(jù)業(yè)務(wù)場景,設(shè)定了用戶,角色,菜單三張表,同時還有用戶與角色關(guān)聯(lián)表,角色與菜

    2024年02月20日
    瀏覽(21)
  • Mybatis學(xué)習(xí)|Mybatis緩存:一級緩存、二級緩存

    Mybatis學(xué)習(xí)|Mybatis緩存:一級緩存、二級緩存

    MyBatis包含一個非常強大的查詢緩存特性,它可以非常方便地定制和配置緩存。緩存可以極大的提升查詢效率。 MyBatis系統(tǒng)中默認(rèn)定義了兩級緩存:一級緩存和二級緩存 默認(rèn)情況下,只有一級緩存開啟。(SqlSession級別的緩存,也稱為本地緩存) 二級緩存需要手動開啟和配置,他是

    2024年02月09日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包