1

Java Bean フィールドのオブジェクト配列を取得する方法はありますか? データベース テーブル (Hibernate) を表す Bean クラスがいくつかあり、それらから jtable モデルのオブジェクト配列を取得する必要がありますが、これを行う唯一の方法は、各クラスの各フィールドに対して getXXX メソッドを呼び出すことです。やらなければならないこと。

4

2 に答える 2

5

Bean から値を抽出する一般的な方法が必要な場合は、イントロスペクション (パッケージ "java.lang.reflect") を調べる必要があります。

以下に基本的な例を示します。

Field[] fields = ABeanClass.getDeclaredFields();

Object[] values = new Object[fields.length];

int i = 0;

for (Field field : fields) {
    values[i] = field.get(beanInstance);
    i++;
}
于 2012-04-07T20:03:38.747 に答える
0

私のやり方は、モデルとデータベース間のすべての通信を処理する「コントローラー」クラスを使用することです。

たとえば、private List myList=null;のように「オブジェクト」のリストを作成します。次に、コントローラークラスにジェネリックメソッドを記述します。リストを返すgetListと言います。相対クラスをメソッドに渡すと、休止状態のセッションを使用してリストが返されます。あなたの豆で、これを行います

myList = myController.getList(YourBean.class);

そして、これはあなたのgetlistメソッドでなければなりません。

public List getList(Class c) throws BaseExceptionHandler {
        Session session = null;
        Transaction tx = null;
        String query = null;
        List list = null;
        try {
            query = getStringQuery(c);
            if (query != null) {
                session = sessFactory.openSession();
                tx = session.beginTransaction();
                list = (List) session.createQuery(query).list();
                tx.commit();
            }
        } finally {
            if (session != null) {
                session.close();
            }

        }
        return list;
    }

乾杯 :)

于 2012-04-07T20:24:54.447 に答える