- ベストアンサー
objectのSystem.out.plintln()について。
objectのSystem.out.plintln()について。 DBから取得した情報を、objectに詰めて取得し、そのobjectの中身をすべてsysoutで表示させたいです。 表示させる機能を、共通メソッドとして使用したいので、メソッド内のsysoutで『System.out.plintln(object.get~)』とは書けない感じです。 リフレクションで検索したのですが、いまいち、やりたい事の説明にはなっていなかったので、どのように実装したらいいかあまり解りません。 すみませんが解る方がいらっしゃいましたら教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
commons-langのToStringBuilderを使うと簡単です。
その他の回答 (2)
- salsberry
- ベストアンサー率69% (495/711)
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 + ">"; } }
- Hardking
- ベストアンサー率45% (73/160)
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)); } } }