我在将SELECT COUNT(*)
查询的结果分配给Java变量时遇到问题。我正在将查询结果分配给ResultSet。然后,我尝试检索计数值并将其分配给变量。尝试执行此操作时出现错误。
下面是我的代码:
ResultSet rc1 = null;
int rowCount1;
Statement stat = conn.createStatement();
rc1 = stat.executeQuery("SELECT COUNT(*) AS rowcount1
FROM Signal WHERE SignalId = 1;");
if (rc1.next())
rowCount1 = rc1.getInt("rowcount1");
然后我得到以下错误:
java.sql.SQLException:无此列:'行计数1'
在组织中。sqlite。RS。查找列(RS.java:116)
在组织中。sqlite。RS。getInt(RS.java:219)
显然,问题是当试图将AS后面的内容赋给变量时。我找不到很多关于包含AS的查询的信息。我在不计数的查询中得到同样的错误。例如,如果我有以下代码:
ResultSet rp1 = null;
int rowCount1 = 0;
Statement stat = conn.createStatement();
rp1 = stat.executeQuery("SELECT Signal AS Sig1
FROM Observations WHERE SignalId = 1;");
if (rp1.next())
rowCount1 = rp1.getInt("rowcount1");
我得到了与前面代码相同的错误(没有这样的列:rowCount1)。我做错了什么?我正在确保读取的表包含正确的值,因此查询必须为真。
2条答案
按热度按时间rwqw0loc1#
只需使用
rp1.getInt(1)
--它将结果集中的第一列作为int返回--这正是您想要的。如果有更多值,请使用
rp1.getInt(2)
获取第二个值,以此类推...6yt4nkrj2#
第二个示例有一个错误:
将始终失败,因为查询中没有
rowcount1
列。