“ResultSet”是否被视为 ArrayList?我说的是 jdbc。如果不是,那么我如何使用从我的数据库中获取的信息
while (result.next()) {
....
}
将语法转换为名为 hotelResult 的 ArrayList?
我希望这是可以理解的。
原文由 Adem Ökmen 发布,翻译遵循 CC BY-SA 4.0 许可协议
“ResultSet”是否被视为 ArrayList?我说的是 jdbc。如果不是,那么我如何使用从我的数据库中获取的信息
while (result.next()) {
....
}
将语法转换为名为 hotelResult 的 ArrayList?
我希望这是可以理解的。
原文由 Adem Ökmen 发布,翻译遵循 CC BY-SA 4.0 许可协议
ResultSet 不是 ArrayList。相反,它是一个特殊的对象(接口),用于保存通过 JDBC 连接查询检索到的数据。
ResultSet 对象无法更新,只能向前遍历……不能向后遍历。默认情况下,您只能从第一行到最后一行迭代它一次(尽管通过一些编码,您可以生成一个可以双向编辑和遍历的 ResultSet 对象)。
存储在 ResultSet 对象中的记录可以很容易地放在 ArrayList 中。以下是有关如何执行此操作的示例:
Connection con = ... ;
Statement stmt = ... ;
ResultSet results = stmt.executeQuery("...");
//Stores properties of a ResultSet object, including column count
ResultSetMetaData rsmd = results.getMetaData();
int columnCount = rsmd.getColumnCount();
ArrayList<String> hotelResultList = new ArrayList<>(columnCount);
while (results.next()) {
int i = 1;
while(i <= columnCount) {
hotelResultList.add(results.getString(i++));
}
}
注意:此示例假设在查询中返回单个字符串,例如酒店名称。您可能希望保存关于每家酒店的多条数据,在这种情况下,您将创建一个“酒店”对象,然后创建 ArrayList 作为酒店对象列表。通过使用行映射器,每个酒店对象都可以填充相关数据。
此外,使用一种流行的 JDBC 框架来处理 JDBC 连接、查询和结果集可以进一步简化该过程。
原文由 Michael M 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
不,ResultSet 不被视为 ArrayList,而是一个表。例如,如果 hotelResult 的类型为字符串,您可以用这段代码填充列表(如果 ResultSet 中的列是字符串)。
对于每种数据类型,都有一种从 ResultSet 中获取值的方法。在 Java API 中查找不同类型的方法。