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
Resultset get all values
提问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);
}