国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

MyBatis理解與掌握(緩存)

馬龍駒 / 984人閱讀

摘要:理解與掌握緩存框架一級緩存默認(rèn)就可以使用框架處理緩存是依賴映射,的內(nèi)部緩存使用一個,為語句。一級緩存的作用域是一個,一旦發(fā)生變化,一級緩存失敗在同一個中,執(zhí)行相同的查詢,第一次會去查詢數(shù)據(jù)庫,并寫到緩存中第二次直接從緩存中取。

MyBatis理解與掌握(緩存)

@(MyBatis)[Java, 框架, MyBatis]

一級緩存(SqlSession)

默認(rèn)就可以使用

框架處理緩存是 依賴sql映射id ,Mybatis的內(nèi)部緩存使用一個HashMap,key為hashcode+statementId+sql語句。Value為查詢出來的結(jié)果集映射成的java對象。

一級緩存的作用域是一個SqlSession ,一旦session發(fā)生變化,一級緩存失敗

在同一個SqlSession中,執(zhí)行相同的查詢SQL,第一次會去查詢數(shù)據(jù)庫,并寫到緩存中;第二次直接從緩存中取。當(dāng)執(zhí)行SQL時兩次查詢中間發(fā)生了增刪改操作,則SqlSession的緩存清空。

每次查詢會先去緩存中找,如果找不到,再去數(shù)據(jù)庫查詢,然后把結(jié)果寫到緩存中。

二級緩存(SqlSessionFactory)

默認(rèn)無法使用

如果想要使用,需要進(jìn)行配置, 在映射文件中增加標(biāo)簽

要求緩存類必須實(shí)現(xiàn)可序列化接口

二級緩存是mapper級別的。Mybatis默認(rèn)是沒有開啟二級緩存。

第一次調(diào)用mapper下的SQL去查詢用戶信息。查詢到的信息會存到該mapper對應(yīng)的二級緩存區(qū)域內(nèi)。

第二次調(diào)用 相同namespace下的mapper映射文件中相同的SQL 去查詢用戶信息。會去對應(yīng)的二級緩存內(nèi)取結(jié)果。

如果調(diào)用相同namespace下的mapper映射文件中的增刪改SQL,并執(zhí)行了commit操作。此時會清空該namespace下的二級緩存。

使用二級緩存

(1)主配置文件mybatis-config.xml中做如下配置:


    
    
    

2)在映射文件中,加入以下內(nèi)容,開啟二級緩存:

eviction:移除策略。

LRU:最近最少使用的對象會被移除。

FIFO:First In First Out

flushInterval:緩存刷新時間(毫秒)

readOnly:只讀。二級緩存中一旦修改了數(shù)據(jù),別人取到的緩存數(shù)據(jù)就不準(zhǔn)確了,所以要設(shè)置為readonly

size:1024(個)

(3)緩存類實(shí)現(xiàn)序列化
由于二級緩存的數(shù)據(jù)不一定都是存儲到內(nèi)存中,它的存儲介質(zhì)多種多樣,所以需要給緩存的對象執(zhí)行序列化。
如果該類存在父類,那么父類也要實(shí)現(xiàn)序列化。

禁用二級緩存

該statement中設(shè)置userCache=false可以禁用當(dāng)前select語句的二級緩存,即每次查詢都是去數(shù)據(jù)庫中查詢,默認(rèn)情況下是true。

刷新二級緩存

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/77235.html

相關(guān)文章

  • MyBatis理解掌握(原理分析)

    摘要:理解與掌握原理分析框架功能架構(gòu)接口層提供給外部使用的接口,開發(fā)人員通過這些本地來操作數(shù)據(jù)庫。流程分析數(shù)據(jù)處理過程根據(jù)的查找相應(yīng)的對象。預(yù)處理對象,得到對象。傳入和結(jié)果處理對象,通過的方法來執(zhí)行,并對執(zhí)行結(jié)果進(jìn)行處理。 MyBatis理解與掌握(原理分析) @(MyBatis)[Java, 框架, MyBatis] 功能架構(gòu) showImg(https://segmentfault.co...

    keelii 評論0 收藏0
  • Java面試 32個核心必考點(diǎn)完全解析

    摘要:如問到是否使用某框架,實(shí)際是是問該框架的使用場景,有什么特點(diǎn),和同類可框架對比一系列的問題。這兩個方向的區(qū)分點(diǎn)在于工作方向的側(cè)重點(diǎn)不同。 [TOC] 這是一份來自嗶哩嗶哩的Java面試Java面試 32個核心必考點(diǎn)完全解析(完) 課程預(yù)習(xí) 1.1 課程內(nèi)容分為三個模塊 基礎(chǔ)模塊: 技術(shù)崗位與面試 計算機(jī)基礎(chǔ) JVM原理 多線程 設(shè)計模式 數(shù)據(jù)結(jié)構(gòu)與算法 應(yīng)用模塊: 常用工具集 ...

    JiaXinYi 評論0 收藏0
  • MyBatis理解掌握(簡介)

    摘要:語句在代碼中硬編碼,造成代碼不易于維護(hù),實(shí)際應(yīng)用變化的可能較大,變動需要改變代碼。對結(jié)果集解析存在硬編碼查詢列名,變化導(dǎo)致解析代碼變化,系統(tǒng)不易于維護(hù),如果能將數(shù)據(jù)庫記錄封裝成對象解析比較方便。 MyBatis理解與掌握(簡介) @(MyBatis)[Java, 框架, MyBatis] 簡介 ??Mybatis是一個數(shù)據(jù)持久層框架,MyBatis消除了幾乎所有的JDBC代碼和參數(shù)的手...

    Pocher 評論0 收藏0
  • MyBatis理解掌握(入門例子)

    摘要:的實(shí)例不是線程安全的,因此是不能被共享的,所以它的最佳的作用域是請求或方法作用域。下面的示例就是一個確保關(guān)閉的標(biāo)準(zhǔn)模式依賴注入框架可以創(chuàng)建線程安全的基于事務(wù)的和映射器并將它們直接注入到你的中,因此可以直接忽略它們的生命周期。 MyBatis理解與掌握(入門例子) @(MyBatis)[Java, 框架, MyBatis] 配置文件 mybatis-config.xml ...

    lufficc 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<