项目中需要返回多个表的查询结果,比如user表中的用户信息和user个人的所在班的班级信息。目前我们有user实体类和class实体类。一般情况下如果是单表查询,比如查询user信息,那么查询的返回值就是一个user对象或一个user对象列表。但是像这种情况涉及两个表的话,查询结果的返回值该是什么呢?

解决办法:
1.user表的属性里添加一个class的属性。
2.新建一个类SserClass,包含user类和class类的内容。
3.使用JSONObject!

第一种办法需要修改user类的内容,如果是别人定义的类,那最好就不要改了,即使是自己写的但是改代码也不倡议。
第二种办法不需要改代码,但是需要新建一个类,本来一个表对应一个类,现在平白多了一个类,属实不美观。
第三种办法就比较好用了!

只需要改返回值就好了!以下是我某一项目的代码,原先是单表查询返回一个Quality类,现在变成多表查询了,只需要修改返回值和sql语句的返回值即可!
controller层:

service层:

mapper层:
xml文件里的sql语句:

这里需要注意使用resultType而不是resultMap
否则会报:Result Maps collection does not contain value for com.alibaba.fastjson.JSONObject

参考:前端 MyBatis 中使用 JSONObject 替代 JavaBean

MyBatis之使用JSONObject代替JavaBean优雅返回多表查询结果相关推荐

  1. 2021-10-20开发计量系统遇到的问题之--1启动mysql--2mybatis谨慎注释--3mybatis返回多表查询结果

    1.数据库没有启动 .电脑关机了,启动后运行发现数据库出问题了.应该是mysql没有运行起来.网上百度了如何启动mysql都没起作用. 最后通过:计算机管理–>服务和应用程序–>服务 下找 ...

  2. MyBatis总结六:resultMap详解(包含多表查询)

    From: https://www.cnblogs.com/Alex-zqzy/p/9296039.html 简介: MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返 ...

  3. mybatis新增时将主键值返回(注解方式)

    mybatis新增时将主键值返回: @Insert("insert into driver_account_appeal (driver_id,driver_name,driver_phon ...

  4. mybatis 主键自增 insert后返回主键

    mybatis 主键自增 insert后返回主键 : <insert id="insertStudentAutoKey" parameterType="Studen ...

  5. mybatis 连表查询,子查询 collection,返回 vo

    mybatis 查询 1. 连表查询,子查询 collection,返回 vo 1. 连表查询,子查询 collection,返回 vo AppsService.xml 主查询 <resultM ...

  6. 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询

    目录 Mybatis 复杂映射&配置文件深入 一 Mybatis高级查询 1.1 ResutlMap属性 1.2 多条件查询(三种) 1.3 模糊查询 二 Mybatis映射文件深入 2.1 ...

  7. Mybatis执行update,insert等语句返回的不是受影响的行数

    Mybatis执行update,insert等语句返回的不是受影响的行数 在我们日常开发中,使用Mybatis框架中,经常会根据update,或者其他操作的返回值判断执行是否成功. 如: 在执行以上语 ...

  8. 【Mybatis】MyBatis 实现多表查询

    大纲 Auto Mapping 单表实现(别名方式) <resultMap>实现单表配置 单个对象关联查询(N+1,外连接) 集合对象关联查询 注解开发 MyBatis 运行原理 准备:创 ...

  9. Mybatis学习笔记 4:Mybatis 连表查询(一)——一对多关系

    完整代码在这 在查询数据库时,我们经常会遇到多张表联合查询的情况,而Mybatis使连表查询更加简便了,查询出的数据格式非常易于使用,省去了一大部分复杂的代码编写工作,对于关系型数据库来说,数据模型之 ...

最新文章

  1. 20张图助你了解JVM运行时数据区,你还觉得枯燥吗?
  2. Mysql 的隔离级别与锁
  3. linux的技术点,给你的Linux系统上点stress
  4. CSS3:CSS3 文本效果
  5. 为什么要要使用MyBatis
  6. 数论一之定理证明——裴蜀/威尔逊/费马/扩展欧几里得/[扩展]欧拉/[扩展]中国剩余定理,欧拉函数,逆元,剩余系,筛法
  7. React 快速上手 - 目录索引
  8. English trip -- VC(情景课)4 A Health
  9. 深入浅出 Javascript API(二)--地图显示与基本操作
  10. 17-Spring持久层框架整合
  11. Excel常用功能总结
  12. 病毒周报(080630至080706)
  13. TrinityCore3.3.5环境搭建
  14. 用python爬取拉勾网招聘信息并以CSV文件存储
  15. 【ESP32】Arduino+LVGL 如何使用PSRAM优化显示
  16. oracle数据库按日期查询,关于Oracle数据库日期范围查询的两种实现方法详解,oracle详解...
  17. 十年测试经验的阿里p10讲解python初阶:函数和模块 python全栈自动化测试系类4-2
  18. 英文网站更新自动采集工具
  19. mycat - 解开它神秘的面纱
  20. 《杀出个黎明》(From Dusk Till Dawn)--This is the fucking movie

热门文章

  1. linux一键优化脚本1.0
  2. Linux 操作命令(1)
  3. Linux+Apache+Postgresql+PHP安装Drupal7.15
  4. 想爱容易,相处难:当ASP.NET MVC爱上IoC
  5. 2009.5.23软考_系统分析师 上午试题 答案 讨论
  6. 缺乏管理思想的管理软件是没有灵魂的
  7. PHP CURL 哈哈哈哈哈记录一下
  8. 2014年百度之星程序设计大赛 - 资格赛 1004 Labyrinth(Dp)
  9. React路上遇到的Bug
  10. 【CSAPP】三、程序的机器级表示