gpt4 book ai didi

java - 在Java程序中使用结果集

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:58 25 4
gpt4 key购买 nike

Resultset rs=stmt.executeQuery("select count(*) from feedsca group by score order by score");

使用上面的 java 代码,从名为 feedsCA 的表中检索行数。

在尝试使用 rs.getInt(1)、rs.getInt(2)、rs.getInt(3) 检索计数时,我以如下错误结束,

Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The result set has no current row.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetHasCurrentRow(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getterGetColumn(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(Unknown Source)
at SimpleMail.main(SimpleMail.java:151)

更新:

上述异常已解决。

但是我得到以下异常,我不知道原因。请指教。

Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The index 2 is out of range.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyValidColumnIndex(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getterGetColumn(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(Unknown Source)
at SimpleMail.main(SimpleMail.java:152)

这就是我更新程序的方式。给我找一个合乎逻辑的方法,因为我可以很好地理解下面的循环将无法按要求工作。

rs=stmt.executeQuery("select count(*) from feedsca group by score order by score");
while(rs.next()){
pw.printf(rowFormat, rs.getLong(1),"0",rs.getLong(2),rs.getLong(3));}

最佳答案

您必须将结果集的光标移动到一行 - 通过 resultSet.first() 或通过 resultSet.next()。最初,光标指向第一行之前,因此出现异常。

当您想要迭代 ResultSet 时:

while(rs.next()) {
...
}

更新:对于你的第二个问题 - (如卡萨布兰卡所述)你的查询似乎只返回一列,而你要求第二列和第三列 - 但没有找到它们。请注意,在 rs.getX(idx) 中,idx 是列,而不是行。

关于java - 在Java程序中使用结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53355877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com