广告位联系
返回顶部
分享到

MyBatis实现多表联合查询resultType的返回值

java 来源:互联网 作者:秩名 发布时间:2022-03-10 21:16:19 人浏览
摘要

多表联合查询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 dept

多表联合查询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_cardriver

t_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>


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/weixin_44238871/article/details/106282507
相关文章
  • SpringBoot自定义错误处理逻辑介绍

    SpringBoot自定义错误处理逻辑介绍
    1. 自定义错误页面 将自定义错误页面放在 templates 的 error 文件夹下,SpringBoot 精确匹配错误信息,使用 4xx.html 或者 5xx.html 页面可以打印错误
  • Java实现手写一个线程池的代码

    Java实现手写一个线程池的代码
    线程池技术想必大家都不陌生把,相信在平时的工作中没有少用,而且这也是面试频率非常高的一个知识点,那么大家知道它的实现原理和
  • Java实现断点续传功能的代码

    Java实现断点续传功能的代码
    题目实现:网络资源的断点续传功能。 二、解题思路 获取要下载的资源网址 显示网络资源的大小 上次读取到的字节位置以及未读取的字节
  • 你可知HashMap为什么是线程不安全的
    HashMap 的线程不安全 HashMap 的线程不安全主要体现在下面两个方面 在 jdk 1.7 中,当并发执行扩容操作时会造成环形链和数据丢失的情况 在
  • ArrayList的动态扩容机制的介绍

    ArrayList的动态扩容机制的介绍
    对于 ArrayList 的动态扩容机制想必大家都听说过,之前的文章中也谈到过,不过由于时间久远,早已忘却。 所以利用这篇文章做做笔记,加
  • JVM基础之字节码的增强技术介绍

    JVM基础之字节码的增强技术介绍
    字节码增强技术 在上文中,着重介绍了字节码的结构,这为我们了解字节码增强技术的实现打下了基础。字节码增强技术就是一类对现有字
  • Java中的字节码增强技术

    Java中的字节码增强技术
    1.字节码增强技术 字节码增强技术就是一类对现有字节码进行修改或者动态生成全新字节码文件的技术。 参考地址 2.常见技术 技术分类 类
  • Redis BloomFilter布隆过滤器原理与实现

    Redis BloomFilter布隆过滤器原理与实现
    Bloom Filter 概念 布隆过滤器(英语:Bloom Filter)是1970年由一个叫布隆的小伙子提出的。它实际上是一个很长的二进制向量和一系列随机映射
  • Java C++算法题解leetcode801使序列递增的最小交换次

    Java C++算法题解leetcode801使序列递增的最小交换次
    题目要求 思路:状态机DP 实现一:状态机 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 class Solution { public int minSwap(int[] nums1, int[] nums2) { int n
  • Mybatis结果集映射与生命周期介绍

    Mybatis结果集映射与生命周期介绍
    一、ResultMap结果集映射 1、设计思想 对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了 2、resultMap的应用场
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计