プロが教える店舗&オフィスのセキュリティ対策術

objectのSystem.out.plintln()について。

DBから取得した情報を、objectに詰めて取得し、そのobjectの中身をすべてsysoutで表示させたいです。

表示させる機能を、共通メソッドとして使用したいので、メソッド内のsysoutで『System.out.plintln(object.get~)』とは書けない感じです。

リフレクションで検索したのですが、いまいち、やりたい事の説明にはなっていなかったので、どのように実装したらいいかあまり解りません。

すみませんが解る方がいらっしゃいましたら教えて下さい。

A 回答 (3件)

DBMSが何なのか不明ですが(Oracle,SQLServer,PostgreSQL,MySQL...)


オラクルのJDBC接続の場合と仮定します。

DB取得情報の共通メソッドへのパラメーターとして
ResultSetクラスの渡せば良いと思います。
【処理例】
try {
Statement stmQuery = connection.createStatement();
ResultSet rs = stmQuery.executeQuery(strSql);

//共通メソッドを呼ぶ
dispDBvalue(rs);

stmQuery.close();
rs.close();
}
catch (Exception ex)
{
}

public void dispDBvalue(ResultSet p_rs) {
int columnCount;
ResultSetMetaData metaData = p_rs.getMetaData();

//表示カラム数を取得
columnCount = metaData.getColumnCount();

while (p_rs.next()) { //データ件数分処理

for (int idx = 0; idx <= columnCount ; idx++) {
//カラム名取得
String szcolName = metaData.getColumnName(idx);
System.out.println("szcolName = " + p_rs.getString(szcolName));
}
}

}
    • good
    • 0

DBから取得した情報を詰めるobjectのクラスは自分で作るのでしょうか? もしそうなら、そのクラスでtoString()メソッドをオーバーライドして定義すればいいです。

toString()を定義しておけばSystem.out.println(object);で出力できます。

public class X {
String a;
int b;
public String toString() { return "<class X: a=" + a + ", b=" + b + ">"; }
}
    • good
    • 0

commons-langのToStringBuilderを使うと簡単です。



参考URL:http://commons.apache.org/lang/
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!