2016-01-24 93 views
0

我收到一條錯誤消息,指出在從數據庫返回的ResultSet內丟失了一些string。現在我有一個問題:我怎麼能看到ResultSet裏面有什麼?如何查看數據庫中的數據庫JDBC ResultSet in java

谷歌提供的例子有明確的方法,如getString()getInt(),但這些方法假設你知道你在找什麼。我真正需要的是 - 查看我的ResultSet中有哪些元素可用。

就像我發出resultSet.toString()命令時一樣,它會顯示一些帶有變量名稱的地圖 - 有可能嗎?

編輯:

如果它是有用的 - 下面是一段代碼:

public Project mapRow(ResultSet resultSet, int i) throws SQLException { 
     System.out.println(resultSet.toString()); 
     return new Project(resultSet.getInt("project_id"), resultSet.getString("project_name"), 
          resultSet.getString("project_description"), new Category(resultSet.getInt("category_id"), 
                        resultSet.getString("category_name")), 
          resultSet.getString("project_link"), resultSet.getString("project_qa")); 
    } 

錯誤:

Caused by: org.postgresql.util.PSQLException: The column name category_id was not found in this ResultSet. 
+0

你爲什麼要那樣做?如果你想看看,那麼你可以使用getString或getInt方法來做到這一點? – SMA

+0

你爲什麼要這樣?你可以迭代你的結果,看看你有什麼數據。 –

+0

您的** ResultSet **一次包含一個元素? –

回答

2

ResultSet包含在執行後沒有元素一份聲明。要獲得第一行信息,您需要執行rs.next()

下面是通過ResultSet值的簡單迭代。

boolean hasValue = false; 
while(resultSet.next()) 
{ 
    hasValue = true; 
    out.println(resultSet.getString("column_name"); 
    out.println(resultSet.getInt("column_name"); 
} 
if(hasValue) 
    out.println("Result set has values inside of it"); 
else out.println("Result set has no values inside of it"); 

只要你有你的resultSet變量中的一些值,您需要遍歷它來獲得下一個值。默認情況下,查詢執行後,您沒有任何價值,因爲它可能沒有任何價值。

編輯:

ResultSetMetaData metaData = resultSet.getMetaData(); 
int count = metaData.getColumnCount(); //number of column 
String columnName[] = new String[count]; 

for (int i = 1; i <= count; i++) 
{ 
    columnName[i-1] = metaData.getColumnLabel(i)); 
} 

這給你列名,如果這是你想要的。

+0

這不是我想要的。這裏當你實現resultSet.getString(「column_name」) - 你知道列的名字。我想要的 - 發現專欄名稱!看看我從數據庫中得到了哪些列。 – ovod

+0

@ovod,我明白你想要什麼。用一小段文字編輯我的答案,以解決您的問題。 –

+0

@ovod,什麼?我給你的解決方案,你接受了我回答你後的答案?哦,我的...不錯的一個.. –

0

通過ResultSet.getMetaData()從結果集中獲取ResultSetMetaData

ResultSetMetaData有方法getColumnCountgetColumnName枚舉列名稱。

相關問題