我在 AS400 表上运行 SQL 查询。
我事先不知道我在 SQL 中提取的列名。
在我的结果集中我需要:
获取结果集列(结果记录的元数据 - 一次)。
对于集合中的每条记录,获取列的值。
我怎样才能做到这一点?
我在 AS400 表上运行 SQL 查询。
我事先不知道我在 SQL 中提取的列名。
在我的结果集中我需要:
获取结果集列(结果记录的元数据 - 一次)。
对于集合中的每条记录,获取列的值。
我怎样才能做到这一点?
有从 Connection.getMetaData() 检索的 DataBaseMetaData 和从 ResultSet 检索的 ResultSetMetaData。
一些示例 java 代码被截断,可能对您有所帮助:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery( "SELECT * FROM MY_TABLE" );
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
/*if you need the column names...*/
//for( int i = 1; i <= numberOfColumns ) {
// rsmd.getColumnName( i );
//}
List<Object[]> result = new ArrayList<Object[]>();
while( rs.next() ) {
Object[] values = new Object[ numberOfColumns ];
for( int index = 0; index < numberOfColumns; ) {
values[ index ] = rs.getObject( ++index );
}
result.add( values );
}