ResultSet的问题

时间:2014-05-16 22:21:18

标签: java sql

请看下面的代码。这里的问题是查询返回一个没有行的列(LOGIN)(这是SQL Developer所说的),rs.next()正在继续,rs.getString(1)返回表Users的第一行。我不明白在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);
}

2 个答案:

答案 0 :(得分:0)

ResultSet的光标最初位于之前第一条记录。因此,如果rs为空,则rs.next()将立即返回false,并且您的while循环将立即退出。只需检查你的rs是否是由另一个语句创建的。

答案 1 :(得分:0)

"如果没有返回任何行,我应该如何强制next()方法不要前进?"
这就是它的作用,rs.next()在这种情况下将是假的。