当前位置: 首页 > 面试题库 >

用Java处理ResultSet的有效方法

东郭勇
2023-03-14
问题内容

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

问题答案:
  1. 遍历ResultSet
  2. 为每一行创建一个新的对象,以存储所需的字段
  3. 将此新对象添加到ArrayList或Hashmap或任何您喜欢的对象
  4. 关闭结果集,语句和数据库连接

完成了

编辑:现在您已经发布了代码,我对其进行了一些更改。

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应用程序,我正在使用普通的JDBC执行查询。该数据库是Oracle。我已经启用了批处理,因此它节省了我执行查询所需的网络等待时间。但是查询作为独立的INSERT顺序执行: 我想知道以下形式的INSERT是否可能更有效: 即将多个INSERT折叠成一个。 还有其他使批处理INSERT更快的技巧吗? 问题答案: 这是前两个答案的混合

  • 问题内容: 以下代码使用和将转换为JSON字符串。 有没有更快的方法? 有没有一种方法可以使用更少的内存? 问题答案: 由于JIT编译器只是分支和基本测试,因此它可能会使其变得非常快。您可以通过对回调进行HashMap查找来使其更加优雅,但我怀疑这样做会更快。至于记忆,这是非常苗条的。 我以某种方式怀疑此代码实际上是内存或性能的关键瓶颈。您有真正的理由尝试对其进行优化吗?

  • 本文向大家介绍Java有效处理异常的三个原则,包括了Java有效处理异常的三个原则的使用技巧和注意事项,需要的朋友参考一下 异常之所以是一种强大的调试手段,在于其回答了以下三个问题:      1、什么出了错?      2、在哪出的错?      3、为什么出错? 在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没

  • 我想知道使用retfit/rxjava进行令牌身份验证。我对代码进行了重构,以使用DataManager,这样活动在演示器中唤起一个方法,演示器订阅DataManager.getTrips,然后它负责对API的调用。

  • 我怎么才能修好这个?

  • 请,在Post Java 8中,有没有一种优雅而有效的方法来执行以下操作,即1.在数组列表中循环2.读取对象3.使用数组列表项中包含的值调用潜在不同对象的不同方法 我确实看了流,开关语句,但它比我的如果其他的要混乱得多。 任何帮助都将不胜感激。只是寻求持续的改进