【发布时间】:2011-11-22 08:32:05
【问题描述】:
我在 Java 中使用 ResultSet,但不确定如何正确关闭它。我正在考虑使用 ResultSet 来构造一个 HashMap,然后在此之后关闭 ResultSet。这种 HashMap 技术是有效的,还是有更有效的方法来处理这种情况?我需要键和值,所以使用 HashMap 似乎是一个合乎逻辑的选择。
如果使用 HashMap 是最有效的方法,我该如何在我的代码中构造和使用 HashMap?
这是我尝试过的:
public HashMap resultSetToHashMap(ResultSet rs) throws SQLException {
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
HashMap row = new HashMap();
while (rs.next()) {
for (int i = 1; i <= columns; i++) {
row.put(md.getColumnName(i), rs.getObject(i));
}
}
return row;
}
【问题讨论】:
-
发布您正在创建哈希映射并填充结果集的代码部分。
-
误导性方法名称...我看不到 ArrayList。
-
@Deepak:你做的一般都可以,但是你需要在返回之前
rs.close()。如果您需要访问整个数据集,则将数据从结果集中复制到HashMap是正确的方法。 -
@Zaki:对不起:P
-
不要关闭此方法中的 ResultSet。 ResultSet 作为参数传递,因此调用者有责任关闭它。并且关闭应该在'finally'块中完成,这样即使抛出异常也能完成。
标签: java hashmap resultset sqlresultsetmapping