2

我使用 apache-commons-beanutils DynaBean 类来从数据库中获取行并在 mysql 函数之外处理它们。

有没有办法将 DynaBean 转换为 List 而无需遍历每一行并手动创建列表?

谢谢!

4

1 回答 1

3

到目前为止,我没有得到任何答案,所以我编写了遍历行并创建 HashMap 类型(字符串、对象)的 ArrayList 的函数。

public ArrayList<HashMap<String,Object>> convertDynaBeanListToArrayList(List<DynaBean> theList) {
    ArrayList<HashMap<String,Object>> result = new ArrayList<HashMap<String,Object>>();
    DynaProperty[] dynaProperties = null;
    for (Integer i=0;i<theList.size();i++) {
        DynaBean row = theList.get(i);
        HashMap<String,Object> resultRow=new HashMap<String,Object>();
        // each raw got the same column names, no need to fetch this for every line
        if (dynaProperties == null) {
            dynaProperties = row.getDynaClass().getDynaProperties();
        }
        for (Integer j=0;j<dynaProperties.length;j++) {
            String columnName=dynaProperties[j].getName();
            resultRow.put(columnName, row.get(columnName));
        }
        result.add(resultRow);
    }

    return result;
}
于 2010-12-30T16:55:53.180 回答