新聞中心
Mybatis是一個(gè)優(yōu)秀的持久層框架,它支持定制化SQL、存儲(chǔ)過程以及高級(jí)映射,Mybatis提供了一級(jí)緩存和二級(jí)緩存兩種緩存機(jī)制,用于提高查詢性能和減少數(shù)據(jù)庫訪問次數(shù)。

員工經(jīng)過長(zhǎng)期磨合與沉淀,具備了協(xié)作精神,得以通過團(tuán)隊(duì)的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)堅(jiān)持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩W⑺詫I(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡(jiǎn)單”。公司專注于為企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、電商網(wǎng)站開發(fā),小程序開發(fā),軟件按需定制設(shè)計(jì)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。
Mybatis一級(jí)緩存
1、什么是一級(jí)緩存?
一級(jí)緩存是Mybatis中默認(rèn)開啟的緩存機(jī)制,也叫本地緩存,當(dāng)我們執(zhí)行查詢操作時(shí),Mybatis會(huì)將查詢結(jié)果存儲(chǔ)在內(nèi)存中,如果再次執(zhí)行相同的查詢語句,Mybatis會(huì)直接從內(nèi)存中獲取結(jié)果,而不會(huì)再次去數(shù)據(jù)庫中查詢,一級(jí)緩存是基于SqlSession級(jí)別的,也就是說在同一個(gè)SqlSession中,相同的查詢語句和參數(shù)會(huì)共享同一個(gè)緩存。
2、一級(jí)緩存的特點(diǎn)
(1)范圍:同一個(gè)SqlSession
(2)生命周期:與SqlSession相同,當(dāng)SqlSession關(guān)閉或者清空緩存時(shí),一級(jí)緩存也會(huì)被清空。
(3)作用域:同一個(gè)Mapper方法調(diào)用
(4)緩存策略:LRU(最近最少使用)策略
3、如何配置一級(jí)緩存?
在Mybatis的配置文件(mybatis-config.xml)中,可以通過設(shè)置
Mybatis二級(jí)緩存
1、什么是二級(jí)緩存?
二級(jí)緩存是Mybatis提供的一種全局緩存機(jī)制,它可以跨SqlSession共享數(shù)據(jù),二級(jí)緩存是基于HashMap實(shí)現(xiàn)的,當(dāng)多個(gè)SqlSession執(zhí)行相同的查詢語句時(shí),Mybatis會(huì)將查詢結(jié)果存儲(chǔ)在二級(jí)緩存中,后續(xù)的SqlSession可以直接從二級(jí)緩存中獲取結(jié)果,而不需要再去數(shù)據(jù)庫中查詢,二級(jí)緩存需要手動(dòng)配置和創(chuàng)建,通常使用第三方緩存實(shí)現(xiàn)庫如EhCache、Redis等。
2、二級(jí)緩存的特點(diǎn)
(1)范圍:跨SqlSession
(2)生命周期:與應(yīng)用程序相同,當(dāng)應(yīng)用程序關(guān)閉或者清空緩存時(shí),二級(jí)緩存也會(huì)被清空。
(3)作用域:同一個(gè)Mapper接口及其所有方法調(diào)用
(4)緩存策略:基于自定義的Cache實(shí)現(xiàn)類,可以自定義緩存策略
3、如何配置二級(jí)緩存?
在Mybatis的配置文件(mybatis-config.xml)中,可以通過設(shè)置
Mybatis一級(jí)緩存與二級(jí)緩存的區(qū)別
1、作用范圍不同:一級(jí)緩存是SqlSession級(jí)別的,二級(jí)緩存是全局級(jí)別的。
2、生命周期不同:一級(jí)緩存與SqlSession相同,二級(jí)緩存與應(yīng)用程序相同。
3、作用域不同:一級(jí)緩存是同一個(gè)Mapper方法調(diào)用,二級(jí)緩存是同一個(gè)Mapper接口及其所有方法調(diào)用。
4、緩存策略不同:一級(jí)緩存采用LRU策略,二級(jí)緩存基于自定義的Cache實(shí)現(xiàn)類。
相關(guān)問題與解答
問題1:Mybatis一級(jí)緩存和二級(jí)緩存是否可以同時(shí)使用?
答:不可以,Mybatis只支持啟用其中一個(gè)緩存機(jī)制,要么啟用一級(jí)緩存,要么啟用二級(jí)緩存,如果同時(shí)啟用兩者,Mybatis會(huì)拋出異常。
問題2:Mybatis一級(jí)緩存和二級(jí)緩存有什么區(qū)別?
答:一級(jí)緩存是SqlSession級(jí)別的本地緩存,作用范圍是同一個(gè)Mapper方法調(diào)用;二級(jí)緩存是全局級(jí)別的緩存,作用范圍是同一個(gè)Mapper接口及其所有方法調(diào)用,它們的生命周期、作用域和緩存策略也有所不同。
名稱欄目:mybatis一級(jí)緩存和二級(jí)緩存是什么
本文網(wǎng)址:http://m.fisionsoft.com.cn/article/dhjichc.html


咨詢
建站咨詢
