多表联合查询resultType的返回值
一般数据按参数类型返回
1 2 3 |
< select id = "queryCarIdList" resultType = "long" > select id from t_car_car </ select > |
1 2 3 |
< select id = "queryDept" resultType = "string" > SELECT deptname FROM t_car_run where deptid = #{deptid} GROUP BY deptname </ select > |
根据某字段查询
返回的类型是实体类,因为查询结果数据均为实体类中字段的数据
1 2 3 |
< select id = "queryNumber" resultType = "io.renren.modules.generator.entity.TCarRunEntity" > select number from t_car_car where id = #{carid} </ select > |
查询结果为多条记录,存放在list中返回
返回的类型是实体类,因为查询结果数据均为实体类中字段的数据
1 2 3 |
< select id = "queryCar" resultType = "io.renren.modules.generator.entity.TCarCarEntity" > select * from t_car_car </ select > |
多表联合查询
t_car_car t_car_driver t_car_cardrivert_car_cardriver存放的两个字段分别是t_car_car和t_car_driver的主键id
解决方案
1.resultType的返回类型是java.util.Map
返回得到的是List中存放的所有数据
1 2 3 |
< select id = "queryDriver" resultType = "java.util.Map" > select driverid from t_car_cardriver where carid = #{id} </ select > |
2.新建一个实体类
里面存放的是查询结果里需要的字段名
1 2 3 |
// TCarCarDriver private Long carid; private Long driverid; |
返回类型为该实体类
1 2 3 |
< select id = "queryDriver" resultType = "TCarCarDriver" > select driverid from t_car_cardriver where carid = #{id} </ select > |
多表联查,返回结果嵌套list
多层集合嵌套返回结果用resultMap,collection中再次使用resultMap
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
< 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 > |
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
原文链接:https://blog.csdn.net/weixin_44238871/article/details/106282507
查看更多关于MyBatis实现多表联合查询resultType的返回值的详细内容...