你好,这就是我想要的,我连接到DB并检索UniqueId列的最大元素,并将其分配给一个名为maxID的整数变量,这是我的方法:
int maxID = 0;
Statement s2 = con.createStatement();
s2.execute("SELECT MAX(UniqueId) FROM MyTable");
ResultSet rs2 = s2.getResultSet(); //
while ( rs2.next() ){
maxID = rs2.getInt(0);
}
解决这个问题的方法是什么,在循环中使用“rs2.next()”感觉就像一种非常粗糙的方式。
由于
答案 0 :(得分:13)
if (rs2.next()) {
maxID = rs2.getInt(1);
}
答案 1 :(得分:11)
Boris Pavlović几乎是正确的。
if (rs2.next()) {
maxID = rs2.getInt(1);
}
结果集中的列是从1开始的。使用if
而不是while
的原因是您执行的查询只返回一行。
答案 2 :(得分:1)
.next()用于将光标从“无处”重新定位到行(如果有的话)。
你可以测试它,如果你喜欢,虽然你这样做是值得推荐的,所以不能逃避那个循环。虽然如果您确定查询只返回一行,您可以执行此操作
if (rs.next()) {
maxID = rs2.getInt(1);
}