すべての列からすべての値を取得するにはどうすればよいですか?
私はこのコードを試してみました:
values.add(rs.getString(number));
ここで、numberは行数です。
しかし、それは私に最後の列のすべての値を与えるだけです。
すべての列から値を取得し、それをarraylistに追加する必要があります。
これは私の完全なコードです:
// 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});
}
すべての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は列数も保持します。以下のスニペットは、結果セットのすべての列のオブジェクト配列に入力します。
APIドキュメントはあなたの友達です: 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);
}