我的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");
}
...
不,您不必每次都循环,因为 rs.next()
的调用已经将指针从null
设置为第一个可用行,并返回是否有条目。
检查是否返回某些内容仍然是有意义的:
if(rs.next())
{
// process resultset
}else
{
// do something when no data arrived
}
如果您只对第一个结果感兴趣(或只有一个结果(,则可以避免使用循环。如果您确保获得一些结果,这也将是一个很好的做法:
...
if (rs.next()) {
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
}
...
无论如何,不要忘记关闭不再使用的资源(结果集,语句,连接...