Java Bean字段中的对象数组

时间:2012-04-07 19:33:39

标签: java hibernate javabeans tablemodel

有没有办法获取Java Bean字段的Object数组?我有一些代表数据库表(Hibernate)的bean类,我需要从它们中检索jtable模型的对象数组,但似乎这样做的唯一方法是为每个类的每个字段调用getXXX方法 - 很多工作要做。

2 个答案:

答案 0 :(得分:4)

如果你想要一种从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++;
}

答案 1 :(得分:0)

我这样做的方法是使用一个“控制器”类来处理模型和数据库之间的所有通信。

您可以创建“对象”的列表,例如私有List myList = null; 现在,在控制器类中编写泛型方法。说getList返回列表。您将相对类传递给方法,它使用hibernate会话返回列表。在你的bean中,执行此操作

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;
    }

CHEERS:)