在 Java 中处理 ResultSet 的有效方法 [英] Efficient way to Handle ResultSet in Java

查看:24
本文介绍了在 Java 中处理 ResultSet 的有效方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 Java 中使用 ResultSet,但不确定如何正确关闭它.我正在考虑使用 ResultSet 来构造一个 HashMap,然后在此之后关闭 ResultSet.这种 HashMap 技术是有效的,还是有更有效的方法来处理这种情况?我需要键和值,所以使用 HashMap 似乎是一个合乎逻辑的选择.

I'm using a ResultSet in Java, and am not sure how to properly close it. I'm considering using the ResultSet to construct a HashMap and then closing the ResultSet after that. Is this HashMap technique efficient, or are there more efficient ways of handling this situation? I need both keys and values, so using a HashMap seemed like a logical choice.

如果使用 HashMap 是最有效的方法,我该如何在我的代码中构造和使用 HashMap?

If using a HashMap is the most efficient method, how do I construct and use the HashMap in my code?

这是我尝试过的:

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;
}

推荐答案

  1. 遍历 ResultSet
  2. 为每一行创建一个新对象,以存储您需要的字段
  3. 将此新对象添加到 ArrayList 或 Hashmap 或任何您喜欢的对象
  4. 关闭 ResultSet、Statement 和 DB 连接

完成

既然您已经发布了代码,我已经对其进行了一些更改.

now that you have posted code, I have made a few changes to it.

public List resultSetToArrayList(ResultSet rs) throws SQLException{
  ResultSetMetaData md = rs.getMetaData();
  int columns = md.getColumnCount();
  ArrayList list = new ArrayList(50);
  while (rs.next()){
     HashMap row = new HashMap(columns);
     for(int i=1; i<=columns; ++i){           
      row.put(md.getColumnName(i),rs.getObject(i));
     }
      list.add(row);
  }

 return list;
}

这篇关于在 Java 中处理 ResultSet 的有效方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆