You need to enable JavaScript to run this app. MySQL按类型月份分组查询后如何将结果正确赋值给JDBC变量
优惠活动
大模型
产品
解决方案
定价
更多

MySQL按类型月份分组查询后如何将结果正确赋值给JDBC变量

问题原因

你编写的查询语句中,month(Start)、COUNT(Type)属于函数计算生成的动态列,没有显式指定别名,MySQL JDBC驱动无法识别将函数表达式作为默认列名,因此按month(Start)这类名称取值时会抛出找不到列的异常。

解决方法

方法1(推荐):给计算列显式指定别名

修改SQL语句,为所有计算列设置易识别的别名,后续通过别名从ResultSet中取值即可:

SELECT `Type`, month(`Start`) AS start_month, COUNT(Type) AS type_count 
FROM appointments 
GROUP BY `Type`, month(`Start`)

对应Java代码取值部分修改为:

String typeKey = rs.getString("Type");
int monthValue = rs.getInt("start_month");
int count = rs.getInt("type_count");

方法2:通过列索引取值

JDBC中ResultSet的列索引从1开始计数,你当前的查询返回列顺序固定,可直接按位置取值,无需修改SQL:

String typeKey = rs.getString(1);
int monthValue = rs.getInt(2);
int count = rs.getInt(3);

内容的提问来源于stack exchange,提问作者Stone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 04:21:04