【问题标题】:Resultset get all values结果集获取所有值
【发布时间】:2013-12-31 00:01:15
【问题描述】:

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

我试过这段代码:

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

其中 number 是行数。

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

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

这是我的完整代码:

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

  }

【问题讨论】:

  • Dynamic ResultSet (Java)的可能重复
  • 永远不要两次发布您的问题,而是改进您的旧问题。
  • 我删除了我之前的一个并把它变成了官方的
  • @LionC:是的,但永远不要连续发布两个 cmets。编辑你的旧的! :)
  • @Looptech:代码太多了。给我们一个简短、自包含且正确的例子 (sscce.org)。把它分解成你的关键问题!是关于你的 SQL 查询还是关于你的 JTable?乍一看,这并不明显。

标签: java sql sqlite resultset


【解决方案1】:

ResultsetMetaData 也保存您的列数。下面的 sn-p 将为结果集中的每一列填写一个 Object 数组。

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

【讨论】:

    【解决方案2】:

    对于每个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);
    

    【讨论】:

    • 虽然我没有得到我尝试选择的每个表中的最后一列,但它正在工作。
    • 我通过在 for 循环中为 columnCount 添加 +1 解决了这个问题。
    • 虽然现在在某些表格中第一行的最后一个值消失了?
    • 大部分 JDBC(奇怪地)是基于 1 而不是基于 0(如数组),因此您必须注意循环结构。
    • 是的,很抱歉所有的菜鸟问题。这是一个入门课程作业,我之前从未使用过 java 编程,所以我很抱歉。
    猜你喜欢
    • 2017-11-05
    • 1970-01-01
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    相关资源
    最近更新 更多