2012-05-16 29 views
0

對於標準查詢,我對此沒有任何問題。我簡單地說:Java ResultSet獲取返回的字段名稱

ResultSet rs = stmt.executeQuery("SELECT a, b FROM table_name"); 
ResultSetMetaData rsMetaData = rs.getMetaData(); 
int numberOfColumns = rsMetaData.getColumnCount(); 

for (int i = 1; i < numberOfColumns + 1; i++) { 
    String fieldName = rsMetaData.getColumnName(i); 
    System.out.print(fieldName + ", "); 
} 

但我給你一個字段名稱到另一個名稱的那一刻,即

ResultSet rs = stmt.executeQuery("SELECT a AS foo, b AS bar FROM table_name"); 

因爲領域ab都沒有發現它拋出一個錯誤。

我應該如何迎合?謝謝

回答

4

列名稱列標籤有區別。 ResultSet中的方法需要列標籤。所以你應該使用方法ResultSetMetaData.getColumnLabel而不是ResultSetmetaData.getColumnName

+0

哦,哇,我怎麼錯過了!謝謝! –