分享一个map跟javabean转换的方法

来源:互联网 发布:vmware mac 破解版 编辑:程序博客网 时间:2024/06/02 03:32

mybatis查询返回的一般都是resultType="map".(相信应该不会有多少人专门去写一个resultMap). 所以查询结果一般都是List<Map<String,Object>> 的类型.

用mapListToBeanList可将查询结果直接转换成List<javaBean>的形式:用到的jar为Fastjson.jar

下载地址为:http://repo1.maven.org/maven2/com/alibaba/fastjson/

API:http://www.w3cschool.cn/fastjson/fastjson-quickstart.html

需要注意的是:定义的javaBean需要有一个无参的构造函数

/** * @tips 将List<Map>转化为实体List(复杂类型) */public static <T> List<T> mapListToBeanList(List<Map<String, Object>> listMap, Class<T> clazz) {if (listMap != null && listMap.size() > 0) {String jsonStr = JSON.toJSONString(listMap);//System.out.println(jsonStr);return JSON.parseArray(jsonStr, clazz);}return null;}


而select中的parameterType一般都是map,从前台接收的参数通常会是一个JavaBean.用下面方法即可将接收到的JavaBean参数直接转换成map

public static Map<String, Object> beanToMap(Object obj) {Map<String, Object> map = new HashMap<String, Object>();try {if (obj != null) {BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();for (PropertyDescriptor property : propertyDescriptors) {String key = property.getName();// 过滤class属性if (!key.equals("class")) {// 得到property对应的getter方法Method getter = property.getReadMethod();Object value = getter.invoke(obj);map.put(key, value);}}}return map;} catch (Exception e) {e.printStackTrace();return null;}}


0 0
原创粉丝点击