hibernate的一級(jí)緩存、二級(jí)緩存

緩存:是一種優(yōu)化的方式。將數(shù)據(jù)存入到內(nèi)存中,使用的時(shí)候直接從緩存中獲取,不通過存儲(chǔ)源。

hibernate框架中提供了優(yōu)化手段:緩存、抓取策略。hibernate提供了兩種緩存機(jī)制。

一級(jí)緩存:

  • Session級(jí)別的緩存,一級(jí)緩存的生命周期與Session的生命周期一致。一級(jí)緩存是自帶不可卸載的。緩存內(nèi)部就是結(jié)合Session接口和java集合構(gòu)成的。

  • 特點(diǎn):

    • 當(dāng)程序調(diào)用session接口的save(), update(), saveOrUpdate()時(shí),如果session緩存中沒有對(duì)象,hibernate就會(huì)自動(dòng)把數(shù)據(jù)庫中查詢到的數(shù)據(jù)加入到一級(jí)緩存中。

    • 調(diào)用session接口的load(), get()方法,以及Query接口的list(), iteratir()方法時(shí),會(huì)判斷緩存中是否存在該對(duì)象,有則返回,沒有就再去查數(shù)據(jù)庫。

    • 調(diào)用session接口的close()方法時(shí),緩存將清空。

二級(jí)緩存:用得少,不作要求。

一級(jí)緩存的內(nèi)部結(jié)構(gòu):

  • 快照區(qū)(重要)

  • 緩存區(qū)

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容