2011-08-08 11 views
0

私は正常にoracleデータベースに接続し、getAllTableNames()メソッドを使用してすべてのテーブル名のリストを印刷できます。少し混乱(ResultSets、OracleDB、JAVA)

私の次のアイデアは、特定のテーブルをフィルタリングして、すべての列を表示することです。 System.outウィンドウで

私は、現時点では、このクエリを実行している(私は全体の方法を含めています。)

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 

私は、私はちょうど私の結果セットを表示する必要があると思わせるそのこれを受けていますどういうわけか?

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

私の結果はどこかに隠れていますか?それを見るための最善の方法は何ですか?

答えて

3

のSystem.out.println(RS)のような何かをする だけResultSetオブジェクトのクラス名とハンドルを出力します。これはかなり役に立たない。

結果セットをループして適切なフィールドを読み取る必要があります。あなたは、一般的にJDBCをよく読んで、そして接続、ステートメント、およびResultSetのためのJavaドキュメントで見たいと思うかもしれません

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(); 

:一般的にはあなたのような何かを書きます。

1

ResultSet javadocの状態

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

だから、あなたはXXXがあなたの同等のJavaデータ型で適切なのgetXXX(int型のインデックス)メソッドを使用する必要があります。他に何かをする前にnext()を呼び出すことを忘れないでください!

Retrieving and Modifying Values from Result Setsを読むと、達成しようとしているものの例が表示されます。

0

あなたは結果セットをステップ実行する必要があります。私のJavaでは非常に錆びていますが、結果セットではおそらく "toString()"を呼び出すことができます。

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

これは、System.out.println(rs):)と同じものを出力します。 – sealz

2

値を取得するには、結果セットを反復処理する必要があります。その

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