mybatis 框架 resultMap 的延遲加載功能的實(shí)現(xiàn)黍少。

我們之前有說(shuō)

resultMap

可以用于延遲加載

那么今天我們就來(lái)一起

研究一下延遲加載

為什么需要延遲加載寡夹?

在我們的實(shí)際開(kāi)發(fā)中,如果單表查詢能滿足業(yè)務(wù)需求厂置。盡量用單表查詢菩掏,因?yàn)?b>單表查詢的效率比多表關(guān)聯(lián)查詢快。那么當(dāng)業(yè)務(wù)需求需要用到多表查詢,我們應(yīng)該怎么辦呢昵济?Mybatis 引入了延遲加載的概念智绸。

什么叫延遲加載?

為了滿足業(yè)務(wù)需求访忿,必須進(jìn)行多表查詢時(shí)瞧栗,可以先進(jìn)行單表查詢 ,在業(yè)務(wù)信息中需要用到關(guān)聯(lián)表信息的時(shí)候醉顽,再進(jìn)行關(guān)聯(lián)表的單表查詢沼溜。

我們來(lái)做一個(gè)小例子

我們?cè)跀?shù)據(jù)庫(kù)中建了幾張表平挑,先來(lái)看一下用戶表的表數(shù)據(jù)游添,其中有一個(gè)字段為DEPT_ID代表我們的部門(mén)系草。

再來(lái)看那一下我們的部門(mén)表。

那么現(xiàn)在我們想查詢用戶的部門(mén)名稱唆涝,利用單表分開(kāi)查詢找都,的過(guò)程如下:

先查詢用戶得到用戶的的部門(mén) ID(DEPT_ID)

再根據(jù) DEPT_ID 獲取部門(mén)的名稱

那么現(xiàn)在我們來(lái)演示一下,利用mybatis的延遲加載實(shí)現(xiàn)廊酣。用兩條SQL語(yǔ)句來(lái)查詢能耻,先來(lái)寫(xiě)一下接口。

再來(lái)寫(xiě)一下我們的SQL映射文件中的SQL語(yǔ)句亡驰。

這邊只有一條查詢語(yǔ)句晓猛,進(jìn)行了一次查詢。

利用上面的這條語(yǔ)句凡辱,就可以找到我們的 deptMapper.Java 中的方法〗渲埃現(xiàn)在DeptMapper.Java 中添加一個(gè) getDeptById();方法。

在我們的 deptMapper.xml 中添加 SQL 語(yǔ)句透乾。

寫(xiě)好之后現(xiàn)在來(lái)測(cè)試一下洪燥,查詢一下 ID=1 的用戶的部門(mén)名稱。

看到我們的查詢結(jié)果了乳乌,是頂級(jí)部門(mén)捧韵。這僅僅是實(shí)現(xiàn)了利用兩條語(yǔ)句來(lái)進(jìn)行多表查詢,還沒(méi)有實(shí)現(xiàn)延遲加載汉操。

Mybatis 的延遲加載實(shí)現(xiàn)

Mybatis 提供了全局設(shè)置參數(shù)和 resultMap 標(biāo)簽的高級(jí)應(yīng)用來(lái)實(shí)現(xiàn)延遲加載

setting 設(shè)置



這是沒(méi)有設(shè)置延遲加載的再来,我們打了個(gè)斷點(diǎn),看一下磷瘤∑浔祝可以看出還沒(méi)有執(zhí)行到獲取部門(mén)名稱的那條語(yǔ)句,我們的部門(mén)信息就已經(jīng)加載出來(lái)了膀斋。

這是設(shè)置了延遲加載的結(jié)果梭伐,同樣的地方打的斷點(diǎn),dept 對(duì)象是空的仰担,表示我們的第二條查詢語(yǔ)句沒(méi)有執(zhí)行糊识。

按下 F6 下一步。

這個(gè)時(shí)候摔蓝,我們的第二條語(yǔ)句才執(zhí)行赂苗,dept 的內(nèi)容才加載進(jìn)來(lái)了。

好的各位小伙伴

今天的延遲加載

就分享到這里了

記得要練習(xí)呦贮尉!

拜拜拌滋!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市猜谚,隨后出現(xiàn)的幾起案子败砂,更是在濱河造成了極大的恐慌赌渣,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昌犹,死亡現(xiàn)場(chǎng)離奇詭異坚芜,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)斜姥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)鸿竖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人铸敏,你說(shuō)我怎么就攤上這事缚忧。” “怎么了杈笔?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵搔谴,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我桩撮,道長(zhǎng)敦第,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任店量,我火速辦了婚禮芜果,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘融师。我一直安慰自己右钾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布旱爆。 她就那樣靜靜地躺著舀射,像睡著了一般。 火紅的嫁衣襯著肌膚如雪怀伦。 梳的紋絲不亂的頭發(fā)上脆烟,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音房待,去河邊找鬼邢羔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛桑孩,可吹牛的內(nèi)容都是我干的拜鹤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼流椒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼敏簿!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤惯裕,失蹤者是張志新(化名)和其女友劉穎温数,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體轻猖,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帆吻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年域那,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了咙边。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡次员,死狀恐怖败许,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情淑蔚,我是刑警寧澤市殷,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站刹衫,受9級(jí)特大地震影響醋寝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜带迟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一音羞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仓犬,春花似錦嗅绰、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至叽躯,卻和暖如春财边,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背点骑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工制圈, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人畔况。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓鲸鹦,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親跷跪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子馋嗜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容