web-dev-qa-db-fra.com

L'ensemble de résultats obtient toutes les valeurs

Comment puis-je obtenir toutes les valeurs de toutes les colonnes?

J'ai essayé avec ce code:

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

Où nombre est le nombre de lignes.

Mais cela ne me donne que toutes les valeurs de la dernière colonne.

J'ai besoin de saisir les valeurs de chaque colonne, puis de les ajouter à la liste d'arrayl.

Voici mon code complet:

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

  }
15
Looptech

Pour chaque 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);
7
Joop Eggen

ResultsetMetaData contient également le nombre de colonnes. L'extrait ci-dessous remplira un tableau d'objets pour chaque colonne d'un ensemble de résultats.

Le document API est votre ami: http://docs.Oracle.com/javase/7/docs/api/Java/sql/ResultSet.htmlhttp://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);
}
17
lscoughlin