第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Mybatis緩存詳解

難度初級
時長 3小時 3分
學(xué)習(xí)人數(shù)
綜合評分8.40
5人評價 查看評價
8.4 內(nèi)容實用
8.4 簡潔易懂
8.4 邏輯清晰
  • SqlSession繼承路徑


    645523290001149009600540.jpg
    查看全部
  • 緩存比較

    查看全部
    0 采集 收起 來源:課程總結(jié)

    2022-10-30


  • Rediscache

    查看全部
  • summary

    查看全部
  • cache

    查看全部

  • Mybatis Cache

    一級緩存特點

    自動啟用

    通過在setting中設(shè)置localCacheScope= STATEMENT(默認為SESSION)全局禁用一級緩存

    在Dao接口方法上添加注解:@Options(flushCache=Options.FlushCachePolicy.True),禁用這個方法的一級緩存

    命中原則,同一SqlSession內(nèi),以下5個條件組成key,放入緩存中:

    條件一:statementId相同

    條件二:sql上用到的參數(shù)要一樣

    條件三:分頁參數(shù)要一樣?

    條件四:sql語句的文本要一樣

    條件五:數(shù)據(jù)庫連接的environment要一樣

    生命周期

    產(chǎn)生:sqlSession執(zhí)行查詢方法,而不是update等

    銷毀:sqlSession關(guān)閉、sqlSession提交、sqlSession回滾、sqlSession執(zhí)行update(新增、刪除、更新)后底層會執(zhí)行清除、主動清除

    辟謠:Mybatis 一級緩存臟讀(數(shù)據(jù)被另外事務(wù)修改并提交后,仍會從緩存中讀到舊數(shù)據(jù)(錯誤),實際是避免了事務(wù)不可重復(fù)讀問題), Mybatis 一級緩存是在事務(wù)的生命周期之內(nèi)的,在關(guān)閉session、執(zhí)行commit、執(zhí)行rollback都會清空Mybatis一級緩存。 實際上Mybatis 一級緩存反而避免了數(shù)據(jù)庫事務(wù)中的臟讀(讀未提交)、不可重復(fù)讀(讀提交)問題。

    源碼解讀

    代理模式與裝飾模式的區(qū)別:代理模式在無參構(gòu)造方法中確定地new了一個被代理的對象,編譯時已經(jīng)可以確定;而裝飾模式是通過有參構(gòu)造方法將被裝飾對象傳入裝飾 類中,能夠在運行時遞歸地被構(gòu)造。

    設(shè)計理念:在一個session內(nèi),不過期、不更新、不限制;

    與spring整合時,如果開啟了事務(wù),事務(wù)內(nèi),Spring通過ThreadLocal始終使用同一個sqlSession,一級緩存生效; 如果沒有開啟事務(wù),每次查詢前會創(chuàng)建一個sqlSession,查詢結(jié)束后會關(guān)閉sqlSession,所以一級緩存無效;?

    二級緩存特點(跨sqlSession、有臟讀問題,建議直接不用)

    啟用步驟:

    在mybatis.xml中settings標簽下添加;?

    在mapper.xml中mapper標簽下添加:屬性eviction(LRU( 默認)、FIFO、SOFT、WEAK)和size(實例數(shù),默認不限制),通過這兩個屬性可自定義二級緩存的清除策略

    在mapper.xml中mapper標簽下添加:屬性type,通過設(shè)置type可以指定使用的Cache對象,后面自定義緩存中有用到

    默認地,select標簽flushCache="false" useCache="true",其他標簽flushCache="true" entity類實現(xiàn)Serializable標記類;?

    命中原則,同一SqlSessionFactory內(nèi),以下5個條件組成key,放入緩存中:?

    條件一:statementId相同?

    條件二:sql上用到的參數(shù)要一樣?

    條件三:分頁參數(shù)要一樣?

    條件四:sql語句的文本要一樣?

    條件五:數(shù)據(jù)庫連接的environment一樣?

    生命周期?

    sqlSession關(guān)閉-創(chuàng)建二級緩存、?

    sqlSession提交-創(chuàng)建二級緩存、

    sqlSession回滾、

    sqlSession執(zhí)行update(新增、刪除、更新)、銷毀二級緩存唯方法:同一mapper.xml執(zhí)行update(新增、刪除、更新)注意:同一個表的操作要放在同一個mapper下

    sqlSession主動清除

    產(chǎn)生:1.能產(chǎn)生一級緩存;2.對sqlSession進行關(guān)閉或提交;?

    銷毀:

    源碼解讀 (MapperBuilderAssistant.class->useNewCache、XMLMapperBuilder.class->cacheElement)

    緩存是存在Configuration下并且緩存使用的是PerpetualCache(非分布式),而Configuration又是在DefaultSqlSessionFactory下,所以不同的SqlSessionFactory下的緩存是相互隔離的;

    通過自定義Redis緩存(實現(xiàn)Cache),將mapper下的cache指定type為自定義的類,就可以實現(xiàn)緩跨DefaultSqlSessionFactory;

    查看全部
    0 采集 收起 來源:課程介紹

    2022-04-25

  • 課程目錄

    查看全部
    0 采集 收起 來源:課程介紹

    2022-04-07

  • mybatis一級緩存類圖。


    61c7dd600001027409600540.jpg
    查看全部
  • mhsql一級緩存類圖


    61c7dd390001214109600540.jpg
    查看全部
  • 哈哈哈哈

    查看全部
    0 采集 收起 來源:課程介紹

    2021-12-14

  • mybatis一二級緩存


    61212a1600012c7512800720.jpg
    查看全部
    0 采集 收起 來源:課程總結(jié)

    2021-08-22

  • MyBatis

    查看全部
  • MyBatis

    查看全部
  • MyBatis


    查看全部
  • MyBatis

    查看全部
    0 采集 收起 來源:課程介紹

    2021-08-12

  • http://img1.sycdn.imooc.com//60bd7cb20001a66308220481.jpg

    11

    查看全部
  • 二級緩存的命中原則

    http://img1.sycdn.imooc.com//5fe176a5000139d712240683.jpg

    查看全部

  • 1、修改配置文件

    2、修改mapper文件

    3、實體類實現(xiàn)序列化接口

    http://img1.sycdn.imooc.com//5fe173c80001baf412020666.jpg


    查看全部
  • MyBatis與Spring繼承:一級緩存

    http://img1.sycdn.imooc.com//5fe16937000100e912660697.jpg

    查看全部
  • 一級緩存的存儲

    http://img1.sycdn.imooc.com//5fe158a50001e03919201080.jpg

    查看全部
  • MyBatis是怎么判斷某兩次查詢是完全相同的查詢?

    條件一:要求查詢的StatementId必須相同,否則無法命中緩存,即使兩個查詢語句、參數(shù)等完全一樣。

    條件二:要求傳遞給SQL的查詢參數(shù)必須相同,否則無法命中緩存

    條件三:要求分頁參數(shù)必須相同,否則無法命中緩存。緩存粒度是整個分頁查詢結(jié)果,而不是結(jié)果中的每個對象。

    條件四:要求傳遞給JDBC的SQL必須完全相同。

    條件五:要求執(zhí)行環(huán)境必須相同。

    http://img1.sycdn.imooc.com//5fe04b930001874810590518.jpg

    查看全部
  • http://img1.sycdn.imooc.com//5fda0e0f0001fe6d10840589.jpgmybatis緩存比較

    查看全部
    0 采集 收起 來源:課程總結(jié)

    2020-12-16

  • size引用數(shù)目

    緩存引用的最大數(shù)目,默認是1024

    當(dāng)緩存引用達到最大數(shù)目時,按照eviction設(shè)定的策略執(zhí)行清除。

    查看全部
  • eviction清除策略:

    LRU:最近最少使用:移除最長時間不被使用的對象;(LinkHashMap)

    FIFO:先進先出:按對象進入緩存的順序來移除它們;(LinkedList)

    SOFT:軟引用:基于GC和軟引用規(guī)則移除對象;(SoftReference)

    WEAK:弱引用: 基于GC和弱引用規(guī)則移除對象;(WeakReference)

    查看全部
首頁上一頁1234567下一頁尾頁

舉報

0/150
提交
取消
課程須知
1. 需要懂得java語言 2. 需要懂得xml語法規(guī)則 3. 需要懂得sql語句的使用,能否使用sql完成基本的CRUD操作 4. 需要懂得mybatis的基本使用方法,能夠使用mybaits完成基本的CRUD操作 5. 需要懂得log4j或其他日志框架的使用方法
老師告訴你能學(xué)到什么?
1、mybatis一級緩存的原理及使用 2、mybatis二級緩存的原理及使用 3、mybatis自定義緩存的原理及使用

微信掃碼,參與3人拼團

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復(fù)購買,感謝您對慕課網(wǎng)的支持!