【发布时间】:2014-05-16 22:21:17
【问题描述】:
看看下面的代码。这里的问题是查询返回一个没有行的列(LOGIN)(这就是 SQL Developer 所说的),正在执行 rs.next() 并且 rs.getString(1) 从表用户返回第一行。我不明白 ResultSet 中的 currentRow 字段下的值为 -1 的事实。这意味着它从查询中获得了一行,这是一个大规模的不连贯性。如果没有返回行,我应该如何强制 next() 方法不要前进?
ResultSet rs = null;
String name = null;
Statement stat = db.conn.createStatement();
String query = "SELECT Users.LOGIN FROM Users, Accessibility WHERE Accessibility.Users_IDGRANTING=4 AND Users.ID=Accessibility.Users_IDRECEIVING";
rs = stat.executeQuery(query);
while(rs.next())
{
name = rs.getString(1);
}
【问题讨论】:
-
你试过打印
rs.getString(1)的内容吗?您可能正在测试中连接到另一个数据库。 -
名称包含 getString(1) 中的内容。它是表用户中的第一条记录,第一列。我没有其他数据库。
-
我怕问ResultSet是不是被某个Statement返回的:-)
-
对不起,我的错。我刚刚编辑了代码。
-
您是否正在运行发布的代码(完全如图所示)?