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