【发布时间】:2019-01-16 05:12:46
【问题描述】:
我想从我的数据库“Logs”中选择最大行号并将其存储在变量m中。
这是我的代码:
ResultSet rs = stmt.executeQuery("Select max(Line) as L from logs");
while (rs.next()) { // Why do I need this
int m = rs.getInt("L");
System.out.println(m);
}
但除非我使用while(rs.next()),否则它不起作用。
如果我理解正确,rs.next() 会将光标移动到下一行,但在这里,在这个结果中,我只有 一行。
那么,有人可以解释为什么循环是必要的吗?我唯一能想到的是第一个光标设置在列名上,对吗?
【问题讨论】:
-
你可以只调用一次,但你想用尽结果集以防万一
-
如果您只期望一行,请将其更改为
if (rs.next())。 -
@shmosel 或
rs.next(); int m = rs.getInt("L"); -
我要编码
if (!rs.next()) throw new Exception("something is really out of shape here")