【发布时间】:2011-08-13 15:08:05
【问题描述】:
如何仅从ResultSet 中获取第一行?我知道如何遍历整个集合,但如何只获得第一行?
【问题讨论】:
-
只是不要迭代。删除迭代循环。如果您不需要所有行,最好改进您的查询以返回 1 行
-
只需在查询中添加 LIMIT 即可?
如何仅从ResultSet 中获取第一行?我知道如何遍历整个集合,但如何只获得第一行?
【问题讨论】:
不要遍历结果集,只需检查是否存在条目并读取它:
ResultSet r = ...;
if(r.next()) {
String s = r.getString(1);
...
}
【讨论】:
在我的情况下,以下方法效果很好:
ResultSet RSet = ...;
RSet.next();
Integer TestType = RSet.getInt("Type");
【讨论】:
您可以使用absolute 导航到第一行:
ResultSet rs = ...;
rs.absolute(1); // Navigate to first row
int id = rs.getInt("id");
...
【讨论】:
//Code to get first row or first field of multiple rows
Class.forName("oracle.jdbc.driver.OracleDriver");
//Establish connection
con = DriverManager.getConnection(sConnString, sUserName, sPassword);
//Create statement.
statement = con.createStatement();
sQueryToExecute = "select field_Name from Table_Name where condition order by desc";
System.out.println(sQueryToExecute);
ResultSet rs = statement.executeQuery(sQueryToExecute);
while(rs.next())
{
stringToStoreValue = rs.getString(1);
break;
}
【讨论】:
对于那些寻求 Sqlite - Android 答案的人,这是我的方法。
if(RS.moveToNext()){
String s = RS.getString(1);
...
}
【讨论】: