MyBatis實(shí)現(xiàn)多表聯(lián)合查詢r(jià)esultType的返回值
多表聯(lián)合查詢r(jià)esultType的返回值
一般數(shù)據(jù)按參數(shù)類型返回
<select id="queryCarIdList" resultType="long"> ? ? ? ? select id from t_car_car </select>
? <select id="queryDept" resultType="string"> ? ? ? ? SELECT deptname FROM t_car_run where deptid = #{deptid} GROUP BY deptname ? ? </select>
根據(jù)某字段查詢
返回的類型是實(shí)體類,因?yàn)椴樵兘Y(jié)果數(shù)據(jù)均為實(shí)體類中字段的數(shù)據(jù)
<select id="queryNumber" resultType="io.renren.modules.generator.entity.TCarRunEntity"> ? ? ? ? select number from t_car_car where id = #{carid} </select>
查詢結(jié)果為多條記錄,存放在list中返回
返回的類型是實(shí)體類,因?yàn)椴樵兘Y(jié)果數(shù)據(jù)均為實(shí)體類中字段的數(shù)據(jù)
<select id="queryCar" resultType="io.renren.modules.generator.entity.TCarCarEntity"> ? ? ? ? select * from t_car_car </select>
多表聯(lián)合查詢
t_car_car
t_car_driver
t_car_cardriver
t_car_cardriver存放的兩個(gè)字段分別是t_car_car和t_car_driver的主鍵id
解決方案
1.resultType的返回類型是java.util.Map
返回得到的是List中存放的所有數(shù)據(jù)
<select id="queryDriver" resultType="java.util.Map"> ? ? ? ? select driverid from t_car_cardriver where carid = #{id} </select>
2.新建一個(gè)實(shí)體類
里面存放的是查詢結(jié)果里需要的字段名
// TCarCarDriver private Long carid; private Long driverid;
返回類型為該實(shí)體類
<select id="queryDriver" resultType="TCarCarDriver"> ? ? ? ? select driverid from t_car_cardriver where carid = #{id} </select>
多表聯(lián)查,返回結(jié)果嵌套list
多層集合嵌套返回結(jié)果用resultMap,collection中再次使用resultMap
<resultMap id="chainVo" type="com.suncnpap.intelligentqa.vo.ChainVo"> ? ? <id column="cid" property="id"/> ? ? <result column="access_key" property="accessKey"/> ? ? <result column="secret_key" property="secretKey"/> ? ? <result column="outer_chain_name" property="outerChainName"/> ? ? <result column="outer_chain_document" property="outerChainDocument"/> ? ? <collection property="intentionVos" ofType="com.suncnpap.intelligentqa.vo.ChainIntentionVo" ? ? ? ? ? ? ? ? resultMap="intentionVos"/> </resultMap> ? <resultMap id="intentionVos" type="com.suncnpap.intelligentqa.vo.ChainIntentionVo"> ? ? <id column="iid" property="id"/> ? ? <result column="intention_name" property="intentionName"/> ? ? <collection property="questionVoList" ofType="com.suncnpap.intelligentqa.vo.MultiQuestionVo"> ? ? ? ? <id column="qid" property="id"/> ? ? ? ? <result column="question" property="question"/> ? ? </collection> ? ? <collection property="wordVos" ofType="com.suncnpap.intelligentqa.vo.ChainIntentionWordVo"> ? ? ? ? <id column="wid" property="id"/> ? ? ? ? <result column="word_slot" property="wordSlot"/> ? ? ? ? <result column="word_slot_miss_question" property="wordSlotMissQuestion"/> ? ? ? ? <result column="entity_type_ids" property="entityTypeIds"/> ? ? </collection> </resultMap> ? <select id="detail" resultMap="chainVo"> ? ? select tc.id ? as tid, ? ? ? ? ? ?tci.id ?as iid, ? ? ? ? ? ?tciw.id as wid, ? ? ? ? ? ?tmq.id ?as qid, ? ? ? ? ? ?access_key, ? ? ? ? ? ?secret_key, ? ? ? ? ? ?outer_chain_name, ? ? ? ? ? ?outer_chain_document, ? ? ? ? ? ?intention_name, ? ? ? ? ? ?question, ? ? ? ? ? ?word_slot, ? ? ? ? ? ?word_slot_miss_question, ? ? ? ? ? ?entity_type_ids ? ? from t_chain tc ? ? ? ? ? ? ?left join t_chain_intention tci on tc.id = tci.chain_id ? ? ? ? ? ? ?left join t_chain_intention_word tciw on tci.id = tciw.intention_id ? ? ? ? ? ? ?left join t_multi_question tmq on tci.id = tmq.parent_id ? ? where tc.id = #{id} ? ? ? and tc.deleted = 0 </select>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springcloud本地調(diào)試feign調(diào)用出現(xiàn)的詭異404問題及解決
這篇文章主要介紹了springcloud本地調(diào)試feign調(diào)用出現(xiàn)的詭異404問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03SpringBoot整合Spring?Data?JPA的詳細(xì)方法
JPA全稱為Java Persistence API(Java持久層API),是一個(gè)基于ORM的標(biāo)準(zhǔn)規(guī)范,在這個(gè)規(guī)范中,JPA只定義標(biāo)準(zhǔn)規(guī)則,不提供實(shí)現(xiàn),本文重點(diǎn)給大家介紹SpringBoot整合Spring?Data?JPA的相關(guān)知識(shí),感興趣的朋友一起看看吧2022-02-02idea熱部署且開啟自動(dòng)編譯的實(shí)現(xiàn)方法
這篇文章主要介紹了idea熱部署且開啟自動(dòng)編譯的實(shí)現(xiàn)方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12