Java 结果集获取所有值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/20545817/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 02:41:16  来源:igfitidea点击:

Resultset get all values

javasqlsqliteresultset

提问by Looptech

How can i get all the values from all the columns?

如何从所有列中获取所有值?

Ive tried with this code:

我试过这个代码:

 values.add(rs.getString(number));

Where number is the rowcount.

其中 number 是行数。

But it only gives me all the values from the last column.

但它只给了我最后一列的所有值。

I need to grab the values from every column and then add it to the arraylist.

我需要从每一列中获取值,然后将其添加到数组列表中。

This is my full code:

这是我的完整代码:

  // The column count starts from 1
  int number = 0;
  for ( i = 1; i < columnCount + 1; i++ ) {
  number++;
  ColumnNames = rsmd.getColumnName(i);

  ar.add(ColumnNames);
  System.out.println(ar);  
  }
 model.setColumnCount(columnCount);

  while ( rs.next() ) {
// values.add(rs.getString(ar.indexOf(i)));
values.add(rs.getString(number));
 System.out.println(values);



     model.addRow(new Object[] {value1,  value2, value3, value4});

  }

采纳答案by Joop Eggen

For every rs.next():

对于每个rs.next()

Object[] row = new Object[columnCount];
for (int i = 1; i <= columnCount; ++i) {
    row[i - 1] = rs.getString(i); // Or even rs.getObject()
}
model.addRow(row);

回答by lscoughlin

ResultsetMetaData holds your column count too. The snippet below will fill out an Object array for every column in a resultset.

ResultsetMetaData 也保存您的列数。下面的代码段将为结果集中的每一列填充一个对象数组。

The API doc is your friend: http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.htmlhttp://docs.oracle.com/javase/7/docs/api/java/sql/ResultSetMetaData.html

API 文档是您的朋友:http: //docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html http://docs.oracle.com/javase/7/docs/api/ java/sql/ResultSetMetaData.html

ResultSet resultSet = getResultSetFromSomewhere();
ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
final int columnCount = resultSetMetaData.getColumnCount();

while (resultSet.next()) {
    Object[] values = new Object[columnCount];
    for (int i = 1; i <= columnCount; i++) {
        values[i - 1] = resultSet.getObject(i);
    }
    model.addRow(values);
}