【MySQL用法】mybatis框架中,查询出来的实体类结果集中的某一个字段无法映射到实体类中的解决方案

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 【MySQL用法】mybatis框架中,查询出来的实体类结果集中的某一个字段无法映射到实体类中的解决方案

一、背景描述

根据某人出现的次数做一次汇总,数据库中并未存在此字段,但是前端页面中要用到,所以就需要在实体类中添加上一个逻辑字段(通过mybatis-plus里的@TableField注解可以解决此问题)

SQL语句如下:

<!--分组查询日/周/月报未读列表数据-->
<select id="queryList" resultType="com.iot.uoa.daily.entity.DailyNoReadReport">
  SELECT
    a.*, COUNT(*)
  FROM
    uoa_daily_no_read_report a, uoa_wx_ma_user_info b
  WHERE
    a.user_name = b.wx_phone
  AND
    a.is_del = 0 AND DATE_FORMAT(a.create_time,'%Y-%m-%d') = CURDATE() GROUP BY a.user_name
</select>

其中count()函数是统计出现多少次使用的,然后我就把这个count字段添加到DailyNoReadReport这个实体类中了,但是统计后的结果并未映射到DailyNoReadReport实体类中的count字段中。

count()函数没有起别名,查询出的结果会把count()当作一个列名,mybatis-plus框架并不会自动映射到DailyNoReadReport实体类中,如下图所示,COUNT(*)被当作一列的名字:

二、解决方案

解决方案,也很简单,就是将COUNT(*)起个别名,和实体类上的字段名字对应起来即可。

正解的SQL如下:

对应的实体类DailyNoReadReport如下:

 

 

 

 

完结!


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
缓存 关系型数据库 MySQL
ThinkPHP框架show columns引发mysql性能问题
ThinkPHP框架的show columns引发mysql性能问题,结尾有关闭方式。
35 13
|
23天前
|
SQL XML Java
七、MyBatis自定义映射resultMap
七、MyBatis自定义映射resultMap
39 6
|
2月前
|
SQL Java 数据库连接
MyBatis-Plus的几种常见用法
MyBatis-Plus 为 MyBatis 提供了许多增强功能,使得开发更加便捷高效。通过基础的 CRUD 操作、条件构造器、分页插件和自动填充等功能,开发者可以显著减少代码量,提高开发效率。在实际应用中,根据具体需求选择合适的功能模块,能够更好地利用 MyBatis-Plus 提升项目开发效率。
101 22
|
3月前
|
SQL Java 数据库连接
MyBatis-Plus高级用法:最优化持久层开发
MyBatis-Plus 通过简化常见的持久层开发任务,提高了开发效率和代码的可维护性。通过合理使用条件构造器、分页插件、逻辑删除和代码生成器等高级功能,可以进一步优化持久层开发,提升系统性能和稳定性。掌握这些高级用法和最佳实践,有助于开发者构建高效、稳定和可扩展的企业级应用。
214 13
|
4月前
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
4月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
95 8
|
5月前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
494 6
|
4月前
|
关系型数据库 MySQL 索引
MySQL的group by与count(), *字段使用问题
正确使用 `GROUP BY`和 `COUNT()`函数是进行数据聚合查询的基础。通过理解它们的用法和常见问题,可以有效避免查询错误和性能问题。无论是在单列分组、多列分组还是结合其他聚合函数的场景中,掌握这些技巧和注意事项都能大大提升数据查询和分析的效率。
469 0
|
4月前
|
关系型数据库 MySQL Java
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
99 0
|
5月前
|
SQL 存储 关系型数据库
MySQL新增字段/索引会不会锁表?
MySQL新增字段/索引会不会锁表?
519 0