java结果集,使用MAX sql函数

java结果集,使用MAX sql函数,java,sql,database,jdbc,Java,Sql,Database,Jdbc,Hello这是我想要的,我连接到一个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

Hello这是我想要的,我连接到一个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()”while循环感觉非常粗糙

谢谢。下一步()是将光标从“无处”重新定位到某一行(如果有)

如果您愿意,您可以对其进行测试,尽管这样做是值得推荐的,所以不能逃避while循环。虽然如果确定查询只返回一行,但是可以这样做

if (rs.next()) {
   maxID = rs2.getInt(1);
}
他几乎是对的

if (rs2.next()) {
  maxID = rs2.getInt(1);
}

结果集中的列是基于1的。使用
if
而不是
while
的原因是,您正在执行的查询只返回一行。

似乎是个好主意,但是,当我如上所述更改时,Eclipse显示了以下错误:描述资源路径位置类型无法调用getInt(int)在基本类型boolean-Alertmail.java/Alertmail/src第33行java Problemyes上,
next()
返回一个布尔值,因此在
while()
循环中工作。是的,是的,你需要重新定位光标,然后才能获取任何数据,我急忙回答。晚上这个时候我不应该看问题。我要编辑我的答案我刚刚修正了我的答案,给了你+1
if (rs2.next()) {
  maxID = rs2.getInt(1);
}