java ResultSet,使用MAX sql函数

时间:2009-10-07 07:38:29

标签: java sql database jdbc

你好,这就是我想要的,我连接到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()”感觉就像一种非常粗糙的方式。

由于

3 个答案:

答案 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);
}