mybatis系統(tǒng)中定義了兩級(jí)緩存,分別是一級(jí)緩存和二級(jí)緩存。
默認(rèn)情況下,只有一級(jí)緩存開(kāi)啟。(sqlsession級(jí)別的緩存,也稱為本地緩存)
SqlSession的生命周期:它應(yīng)該存活在一個(gè)業(yè)務(wù)請(qǐng)求中,處理完整個(gè)請(qǐng)求后,應(yīng)該關(guān)閉這條連接。位置在內(nèi)核旁
二級(jí)緩存需要手動(dòng)開(kāi)啟和配置,二級(jí)緩存也叫全局緩存。mapper級(jí)別的緩存。他是基于同樣的namespace級(jí)別的緩存。
為了提高拓展性,mybatis定義了緩存接口cache,我們可以通過(guò)cache接口來(lái)自定義二級(jí)緩存 .
二級(jí)緩存是用來(lái)解決一級(jí)緩存不能跨會(huì)話共享的問(wèn)題的,可以被多個(gè)SqlSession 共享,二級(jí)緩存存在于 SqlSessionFactory生命周期中。如果你的MyBatis使用了二級(jí)緩存,并且你的Mapper中select語(yǔ)句也配置使用了二級(jí)緩存,那么在執(zhí)行select查詢的時(shí)候,MyBatis會(huì)先從二級(jí)緩存中取輸入,其次才是一級(jí)緩存,即MyBatis查詢數(shù)據(jù)的順序是:二級(jí)緩存 —>一級(jí)緩存 —>數(shù)據(jù)庫(kù)。
工作機(jī)制:
一個(gè)會(huì)話查詢一條數(shù)據(jù),這條數(shù)據(jù)就會(huì)被放到當(dāng)前會(huì)話的一級(jí)緩存中。
如果當(dāng)前會(huì)話關(guān)閉了,那么這個(gè)會(huì)話的一級(jí)緩存會(huì)放入二級(jí)緩存中。
新會(huì)話查詢信息,就會(huì)從二級(jí)緩存中獲取數(shù)據(jù)。?
開(kāi)啟步驟:
測(cè)試參考:
mybatis緩存(一級(jí)緩存、二級(jí)緩存)_C'z x的博客-博客_mybatis有幾級(jí)緩存
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧