MyBatis之使用JSONObject代替JavaBean优雅返回多表查询结果
项目中需要返回多个表的查询结果,比如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优雅返回多表查询结果相关推荐
- 2021-10-20开发计量系统遇到的问题之--1启动mysql--2mybatis谨慎注释--3mybatis返回多表查询结果
1.数据库没有启动 .电脑关机了,启动后运行发现数据库出问题了.应该是mysql没有运行起来.网上百度了如何启动mysql都没起作用. 最后通过:计算机管理–>服务和应用程序–>服务 下找 ...
- MyBatis总结六:resultMap详解(包含多表查询)
From: https://www.cnblogs.com/Alex-zqzy/p/9296039.html 简介: MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返 ...
- mybatis新增时将主键值返回(注解方式)
mybatis新增时将主键值返回: @Insert("insert into driver_account_appeal (driver_id,driver_name,driver_phon ...
- mybatis 主键自增 insert后返回主键
mybatis 主键自增 insert后返回主键 : <insert id="insertStudentAutoKey" parameterType="Studen ...
- mybatis 连表查询,子查询 collection,返回 vo
mybatis 查询 1. 连表查询,子查询 collection,返回 vo 1. 连表查询,子查询 collection,返回 vo AppsService.xml 主查询 <resultM ...
- 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询
目录 Mybatis 复杂映射&配置文件深入 一 Mybatis高级查询 1.1 ResutlMap属性 1.2 多条件查询(三种) 1.3 模糊查询 二 Mybatis映射文件深入 2.1 ...
- Mybatis执行update,insert等语句返回的不是受影响的行数
Mybatis执行update,insert等语句返回的不是受影响的行数 在我们日常开发中,使用Mybatis框架中,经常会根据update,或者其他操作的返回值判断执行是否成功. 如: 在执行以上语 ...
- 【Mybatis】MyBatis 实现多表查询
大纲 Auto Mapping 单表实现(别名方式) <resultMap>实现单表配置 单个对象关联查询(N+1,外连接) 集合对象关联查询 注解开发 MyBatis 运行原理 准备:创 ...
- Mybatis学习笔记 4:Mybatis 连表查询(一)——一对多关系
完整代码在这 在查询数据库时,我们经常会遇到多张表联合查询的情况,而Mybatis使连表查询更加简便了,查询出的数据格式非常易于使用,省去了一大部分复杂的代码编写工作,对于关系型数据库来说,数据模型之 ...
最新文章
- 20张图助你了解JVM运行时数据区,你还觉得枯燥吗?
- Mysql 的隔离级别与锁
- linux的技术点,给你的Linux系统上点stress
- CSS3:CSS3 文本效果
- 为什么要要使用MyBatis
- 数论一之定理证明——裴蜀/威尔逊/费马/扩展欧几里得/[扩展]欧拉/[扩展]中国剩余定理,欧拉函数,逆元,剩余系,筛法
- React 快速上手 - 目录索引
- English trip -- VC(情景课)4 A Health
- 深入浅出 Javascript API(二)--地图显示与基本操作
- 17-Spring持久层框架整合
- Excel常用功能总结
- 病毒周报(080630至080706)
- TrinityCore3.3.5环境搭建
- 用python爬取拉勾网招聘信息并以CSV文件存储
- 【ESP32】Arduino+LVGL 如何使用PSRAM优化显示
- oracle数据库按日期查询,关于Oracle数据库日期范围查询的两种实现方法详解,oracle详解...
- 十年测试经验的阿里p10讲解python初阶:函数和模块 python全栈自动化测试系类4-2
- 英文网站更新自动采集工具
- mycat - 解开它神秘的面纱
- 《杀出个黎明》(From Dusk Till Dawn)--This is the fucking movie