你的分享就是我们的动力 ---﹥

如何把一个javabean里面的属性封装成地图集合

时间:2014-09-30 18:10来源:www.chengxuyuans.com 点击:
怎么把一个javabean里面的属性封装成map集合?
例如我有一个user的javabean,里面有name,age,password等属性,然后在Dao层里面想用Beanutils.populate(Object,Map)方法代替user.setXXX,这个Map怎么获得?

除了反射有没有其他方法。
------解决思路----------------------
你是说数据库里面的?

参考ResultSetMetaData,获得列信息,然后,只要不是太古老的JDBC驱动,一般都支持rs.getObject(columnName)

你可以map.put(columnName, rs.getObject(columnName));
------解决思路----------------------
试试这个!
/*
 *java.beans.Introspector、java.beans.PropertyDescriptor
 */
 public static Map<String, User> convertBeanToMap(User user) 
 {  
  
        if(user == null){  
            return null;  
        }          
        Map<String, User> map = new HashMap<String, User>();  
        try {  
            BeanInfo beanInfo = Introspector.getBeanInfo(user.getClass());  
            PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();  
            for (PropertyDescriptor property : propertyDescriptors) {  
                String key = property.getName();  
                if (!key.equals("class")) {  
                    Method getter = property.getReadMethod();  
                    User value = getter.invoke(user);  
                    map.put(key, value);  
                }  
            }  
        } catch (Exception e) {  
            logger.error("convert BeanToMap Error " + e);  
        }  
        return map;  
}  

转载注明地址:http://www.chengxuyuans.com/j2ee/83110.html