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

遍历ResultSet并将其值添加到ArrayList中

曾瀚昂
2023-03-14
问题内容

我正在遍历,ResultSet并尝试将其值复制到中ArrayList。问题在于它只能遍历一次。但是使用resultset.getString("Col 1")to resultset.getString('Col n")显示所有列的所有条目。以下是代码段-

ResultSet resultset = null;
ArrayList<String> arrayList = new ArrayList<String>(); 
int i = 1;
while (resultset.next()) {              
    arrayList.add(resultset.getString(i++));
    System.out.println(resultset.getString("Col 1"));
    System.out.println(resultset.getString("Col 2"));
    System.out.println(resultset.getString("Col n"));
}

ResultSet复制到的唯一值ArrayList是第1列。然后退出。但是我可以看到所有列的值。为什么?


问题答案:

如果我正确理解了您的问题,那么这里可能有两个问题:

  • resultsetnull-我假设情况并非如此,就好像您在while循环中遇到异常并且什么也不会输出。
  • 第二个问题是resultset.getString(i++)将从 随后的每一行中 获取1,2,3列,依此类推。

我认为第二点可能是您在这里遇到的问题。

假设您只返回了1行,如下所示:

Col 1, Col 2, Col 3 
A    ,     B,     C

您的代码将只获得A-不会获得其余的列。

我建议您按以下方式更改代码:

ResultSet resultset = ...;
ArrayList<String> arrayList = new ArrayList<String>(); 
while (resultset.next()) {                      
    int i = 1;
    while(i <= numberOfColumns) {
        arrayList.add(resultset.getString(i++));
    }
    System.out.println(resultset.getString("Col 1"));
    System.out.println(resultset.getString("Col 2"));
    System.out.println(resultset.getString("Col 3"));                    
    System.out.println(resultset.getString("Col n"));
}

编辑:

要获取列数:

ResultSetMetaData metadata = resultset.getMetaData();
int numberOfColumns = metadata.getColumnCount();


 类似资料:
  • 问题内容: 是否可以将值添加到ArrayList而不是使用HashMap 就像是: 现在收到错误: 谢谢 问题答案: JSTL并非旨在执行此类操作。这确实属于业务逻辑,该业务逻辑将(间接)由Servlet类控制。 创建一个如下的servlet: 这个地图上的。 现在,在其中创建一个JSP文件(将其放置以防止直接访问): 不需要,因为servlet已经设置了它。 现在通过调用servlet + JS

  • 在此处输入图像说明AddMeetingActivity 我想在一个arraylist中添加4个EditText的字符串值,这些EditText是我键入参与者名称的地方。然后我必须在addmeeting()方法中发送新的列表,但我找不到如何执行。 这是为了让您更清楚地看到我正在尝试做什么,我在4 edittext中输入参与者的邮件,当我单击create按钮时,它应该将我在arraylist中输入的邮

  • 我知道这是一个基本问题,但我已经挣扎了很多天,找不到解决办法。请,任何建议将非常真诚地感谢。 我只是尝试将现有ArrayList中包含的元素(节点对象)添加到新的空ArrayList中。其思想是,如果我可以一次添加一个元素,那么我可以对1个元素的列表、2个元素的列表、3个元素的列表运行堆排序方法,以此类推。 但是,当使用for循环、while循环或甚至是增强的for循环时,我无法成功地添加元素并输

  • 但是,后来当我试图将整数添加到正确的“内部”数组列表中时,我无法将整数添加到ArrayList类型的位置中。我还得到一个索引超出界限的错误。 解决这个问题的方法是将整数强制转换为ArrayList类型,但这意味着我将在内部数组列表中添加一个数组列表,这不是我想要的。我想在正确的“内部”ArrayList中添加一个int。

  • public void drop(字符串名称)--如果合适,从ArrayList中移除该项,并将其添加到当前房间。使用以下选项之一更新游戏的消息:1)玩家没有持有该项目,2)房间已经有一个项目,或者3)玩家已经成功地将该项目放入房间。这是此方法的目标,但当我运行它时,它总是跳到else语句中的currentMessage。 问题:我遇到的问题是,当我运行这个方法并试图将一个项目放到房间中时,它没有