2011-08-08 84 views
0

我可以成功連接到oracle數據庫並使用getAllTableNames()方法打印出所有表名的列表。小混亂(ResultSets,OracleDB,JAVA)

我的下一個想法是過濾特定的表格並顯示其所有列。

我正在眼前這個查詢(我在內的整個方法。)

static void getLengths(){ 
String query = "SELECT column_name from user_tab_columns where table_name = '<MytableName>'" 

try{ 
ResultSet rs = db.runQuery(query); 
System.out.println(rs): 
} catch (Exception ex) { 
System.out.println(ex); 
//Seems to be successful 
} 
} //End of Method 

在System.out的窗口我收到這這讓我覺得我只是需要查看我的結果集不知何故?

[email protected](different number everytime I run code) 

我的結果集隱藏在某處嗎?觀看它的最佳方式是什麼?

回答

3

的System.out.println(RS)剛剛打印出的ResultSet對象的類名和手柄。這很無用。

您需要遍歷結果集並閱讀相應的字段。一般來說,你寫的東西,如:

ResultSet rs=db.runQuery(query) // I don't know where this function is coming from, but okay 
while (rs.next()) 
{ 
    String myColumn=rs.getString("column_name"); 
    System.out.println(myColumn); 
} 
rs.close(); 

你可能想上一般JDBC讀了起來,並期待在Java文檔的連接,Statement和ResultSet。

1

ResultSet javadoc的狀態

A table of data representing a database result set, which is usually generated by executing a statement that queries the database.

所以,你必須使用適當的getXXX(INT指數)方法,其中XXX爲你等價的Java數據類型。在做任何事之前不要忘記調用next()

閱讀Retrieving and Modifying Values from Result Sets以查看您正在嘗試完成的示例。

0

你將需要遍歷結果集,在我的java上非常生疏,但你可以在結果集上調用「toString()」來至少顯示返回的內容,儘管它不會非常有用。

System.out.println(rs.toString()) 
+1

這打印與System.out.println(rs):)相同的東西:) – sealz

2

您必須遍歷ResultSet才能獲取值。 做這樣的事情

while(rs.next()) {System.out.println(rs.getString("COLUMN_NAME"));}