我的sql查询只返回一行。在查询时,我是否需要遵循通常的while(rs.next) {...}
模式,或者我可以这样做:
...
rs.next();
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
...
而不是:
...
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
}
...
答案 0 :(得分:4)
不是你不必每次都循环,因为rs.next()
的调用已经将指针从null
设置为第一个可用行,并且返回时是否有条目。< / p>
仍然有必要检查是否有东西被退回:
if(rs.next())
{
// process resultset
}else
{
// do something when no data arrived
}
答案 1 :(得分:0)
如果您只对第一个结果感兴趣(或者只有一个结果),则可以避免使用循环。如果你确定得到一些结果,这也是一个很好的做法:
...
if (rs.next()) {
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
}
...
在任何情况下,不要忘记关闭不再使用的资源(ResultSet,Statement,Connection ...)