Mybatis對(duì)于處理一對(duì)多的情況有三種解決方案:
查詢的時(shí)候join子表,然后交由mybatis拼裝
查詢的時(shí)候不join子表,另外發(fā)起select去抓取子表數(shù)據(jù)
和第二種類似,只不過(guò)利用fetchType=lazy來(lái)延緩抓取的時(shí)機(jī)
這三種方案各有問(wèn)題:
第一種方案有兩個(gè)缺陷:1) 做分頁(yè)查詢的時(shí)候不準(zhǔn),2) 如果關(guān)聯(lián)子表多,笛卡爾積會(huì)非常大
第二種方案會(huì)出現(xiàn)1+N次查詢,發(fā)起的sql數(shù)量會(huì)非??植?/p>
第三種方案看似提升了第一次查詢的效率,但是如果在循環(huán)里get lazy property,那么和第二種方案沒(méi)有什么區(qū)別
因此如果對(duì)性能上有要求, 需要由我們自己去拼裝一對(duì)多的集合,處理的辦法是:把主表的ID都收集起來(lái), 發(fā)起一次性查詢把所有子表的數(shù)據(jù)抓取出來(lái),然后人工拼裝。這樣發(fā)起的查詢數(shù)量就是1+1。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/70072.html
摘要:最終能和面試官聊的開心愉快投緣的叫面霸。能夠與很好的集成提供映射標(biāo)簽,支持對(duì)象與數(shù)據(jù)庫(kù)的字段關(guān)系映射提供對(duì)象關(guān)系映射標(biāo)簽,支持對(duì)象關(guān)系組件維護(hù)。使用可以有效的防止注入,提高系統(tǒng)安全性。 showImg(https://segmentfault.com/img/bVbsSlt?w=358&h=269); 一、概述 面試,難還是不難?取決于面試者的底蘊(yùn)(氣場(chǎng)+技能)、心態(tài)和認(rèn)知及溝通技巧。...
摘要:執(zhí)行沒(méi)有,批處理不支持,將所有都添加到批處理中,等待統(tǒng)一執(zhí)行,它緩存了多個(gè)對(duì)象,每個(gè)對(duì)象都是完畢后,等待逐一執(zhí)行批處理。 Mybatis常見(jiàn)面試題 #{}和${}的區(qū)別是什么? #{}和${}的區(qū)別是什么? 在Mybatis中,有兩種占位符 #{}解析傳遞進(jìn)來(lái)的參數(shù)數(shù)據(jù) ${}對(duì)傳遞進(jìn)來(lái)的參數(shù)原樣拼接在SQL中 #{}是預(yù)編譯處理,${}是字符串替換。 使用#{}可以有效的防止...
摘要:數(shù)據(jù)庫(kù)關(guān)系模型中有一對(duì)一一對(duì)多關(guān)系首先建立如下表繼續(xù)用最經(jīng)典的學(xué)生管理系統(tǒng)建表模型圖如圖所示學(xué)生表為中心學(xué)生證表和其為一對(duì)一關(guān)系學(xué)生表和課程表為一對(duì)多一對(duì)一關(guān)系因?yàn)樯蠄D中學(xué)生和學(xué)生關(guān)系為一對(duì)一關(guān)系由于是數(shù)據(jù)庫(kù)的一對(duì)一關(guān)系那么對(duì)應(yīng)的中也應(yīng)該是 數(shù)據(jù)庫(kù)關(guān)系模型中有一對(duì)一,一對(duì)多,關(guān)系,首先建立如下表 繼續(xù)用最經(jīng)典的學(xué)生管理系統(tǒng) 建表 模型圖如圖所示showImg(https://segme...
摘要:場(chǎng)合常見(jiàn)一些明細(xì)記錄的展示,比如用戶購(gòu)買商品明細(xì),將關(guān)聯(lián)查詢信息全部展示在頁(yè)面時(shí),此時(shí)可直接使用將每一條記錄映射到中,在前端頁(yè)面遍歷中是即可。作用將關(guān)聯(lián)查詢信息映射到一個(gè)對(duì)象中。 相關(guān)閱讀: 1、通過(guò)項(xiàng)目逐步深入了解Mybatis 2、 通過(guò)項(xiàng)目逐步深入了解Mybatis 本項(xiàng)目所有代碼及文檔都托管在 Github地址:https://github.com/zhisheng17/myb...
閱讀 1094·2023-04-25 23:55
閱讀 2780·2023-04-25 14:13
閱讀 3358·2019-08-26 13:47
閱讀 3033·2019-08-23 18:16
閱讀 677·2019-08-23 17:20
閱讀 3275·2019-08-23 16:55
閱讀 3222·2019-08-22 15:39
閱讀 3264·2019-08-20 18:10