获取结果动态设置列和值

时间:2013-11-12 10:31:58

标签: java sql db2 ibm-midrange

我在AS400表上运行SQL查询。

我事先并不知道我在SQL中提取的列名。

在我的ResultSet中我需要:

  1. 获取结果集列(结果记录的MetaData - 一次)。

  2. 对于集合中的每个记录,获取列的值。

  3. 我该怎么做?

1 个答案:

答案 0 :(得分:5)

从ResultSet中的Connection.getMetaData()和ResultSetMetaData中检索到DataBaseMetaData。

一些可能对您有帮助的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 );
}