Java 中 List<Map<String,Object>> 转换 List<javaBean> 详解
2017-07-04 19:49
1011 查看
1.Javabean的实体类
2.List< Map< String,Object>形式的集合
3.获取到的List<Map>结果集转化为JavaBean工具类
4.自定义异常类以及处理字符串的工具类
自定义异常类:
工具类:
5.测试类
/** * 实体类 * @author suny * @date 2017-7-4 * <pre> * desc: * </pre> */ public class Person { private Long id; private String name; private String idcard; private String address; private String homeaddfress; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getIdcard() { return idcard; } public void setIdcard(String idcard) { this.idcard = idcard; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getHomeaddfress() { return homeaddfress; } public void setHomeaddfress(String homeaddfress) { this.homeaddfress = homeaddfress; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", idcard=" + idcard + ", address=" + address + ", homeaddfress=" + homeaddfress + "]"; } }
2.List< Map< String,Object>形式的集合
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 测试数据类 * @author suny * @date 2017-7-4 * <pre> * desc: * </pre> */ public class PersonData { public static List<Map<String, Object>> datas() { List<Map<String, Object>> list = new ArrayList<Map<String,Object>>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("ID", 1L); map.put("NAME", "per11"); map.put("IDCARD", "icard111"); map.put("ADDRESS", "add1111"); map.put("HOMEADDFRESS", "homeadd11111"); list.add(map); Map<String, Object> map1 = new HashMap<String, Object>(); map1.put("ID", 2L); map1.put("NAME", "per22"); map1.put("IDCARD", "icard222"); map1.put("ADDRESS", "add2222"); map1.put("HOMEADDFRESS", "homeadd22222"); list.add(map1); return list; } }
3.获取到的List<Map>结果集转化为JavaBean工具类
import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 获取到的List<Map>结果集转化为JavaBean工具类 * @author suny * @date 2017-7-4 * <pre> * desc: * </pre> */ public class BeanUtils<T> { /** * 根据List<Map<String, Object>>数据转换为JavaBean数据 * @param datas * @param beanClass * @return * @throws CommonException */ public List<T> ListMap2JavaBean(List<Map<String, Object>> datas, Class<T> beanClass) throws CommonException { // 返回数据集合 List<T> list = null; // 对象字段名称 String fieldname = ""; // 对象方法名称 String methodname = ""; // 对象方法需要赋的值 Object methodsetvalue = ""; try { list = new ArrayList<T>(); // 得到对象所有字段 Field fields[] = beanClass.getDeclaredFields(); // 遍历数据 for (Map<String, Object> mapdata : datas) { // 创建一个泛型类型实例 T t = beanClass.newInstance(); // 遍历所有字段,对应配置好的字段并赋值 for (Field field : fields) { if(null != field) { // 全部转化为大写 String dbfieldname = field.getName().toUpperCase(); // 获取字段名称 fieldname = field.getName(); // 拼接set方法 methodname = "set" + StrUtil.capitalize(fieldname); // 获取data里的对应值 methodsetvalue = mapdata.get(dbfieldname); // 赋值给字段 Method m = beanClass.getDeclaredMethod(methodname, field.getType()); m.invoke(t, methodsetvalue); } } // 存入返回列表 list.add(t); } } catch (InstantiationException e) { throw new CommonException(e, "创建beanClass实例异常"); } catch (IllegalAccessException e) { throw new CommonException(e, "创建beanClass实例异常"); } catch (SecurityException e) { throw new CommonException(e, "获取[" + fieldname + "] getter setter 方法异常"); } catch (NoSuchMethodException e) { throw new CommonException(e, "获取[" + fieldname + "] getter setter 方法异常"); } catch (IllegalArgumentException e) { throw new CommonException(e, "[" + methodname + "] 方法赋值异常"); } catch (InvocationTargetException e) { throw new CommonException(e, "[" + methodname + "] 方法赋值异常"); } // 返回 return list; } }
4.自定义异常类以及处理字符串的工具类
自定义异常类:
/** * 公共异常类 * 备注:与原异常没有区别,只是多了一个errormsg字段,保存开发人员提供的异常提示信息 * @author suny * @date 2017-7-4 * <pre> * desc: * </pre> */ public class CommonException extends Exception { // 原始异常 private Throwable target; // 开发提供异常提示内容 private String errormsg = ""; public Throwable getTargetException() { return target; } public Throwable getCause() { return target; } protected CommonException() { super((Throwable) null); } public CommonException(Throwable target, String s) { super(s, null); this.target = target; this.errormsg = s; } public CommonException(Throwable target) { super((Throwable) null); this.target = target; } public String getErrormsg() { return errormsg; } }
工具类:
/** * 字符串工具类 * @author suny * @date 2017-7-4 * <pre> * desc:创建 * </pre> */ public class StrUtil { /** * 给第字符串第一个字母大写 * @param str * @return */ public static String capitalize(String str) { int strLen; if (str == null || (strLen = str.length()) == 0) { return str; } return new StringBuilder(strLen) .append(Character.toTitleCase(str.charAt(0))) .append(str.substring(1)) .toString(); } /** * 使用StringBuilder拼接字符串 * @param objects * @return */ public static String appendSbl(Object... objects) { StringBuilder sbl = new StringBuilder(); for (Object obj : objects) { sbl.append(obj); } return sbl.toString(); } /** * 使用StringBuffer拼接字符串 * @param objects * @return */ public static String appendSbf(Object... objects) { StringBuffer sbl = new StringBuffer(); for (Object obj : objects) { sbl.append(obj); } return sbl.toString(); } /** * 根据字符串,获取后缀 * @param str * 若获取不到,返回 null */ public static String getSuffix(String str) { if(null != str && str.lastIndexOf(".") > 0) { str = str.substring(str.lastIndexOf("."), str.length()); } else { str = null; } return str; } }
5.测试类
import com.aisino.bean.Person; import com.aisino.data.PersonData; import com.aisino.util.BeanUtils; import com.aisino.util.CommonException; /** * 测试类 * @author suny * @date 2017-7-4 * <pre> * desc: * </pre> */ public class Test { /** * @param args */ public static void main(String[] args) { BeanUtils<Person> beanUtils = new BeanUtils<Person>(); try { System.out.println(beanUtils.ListMap2JavaBean(PersonData.datas(), Person.class)); } catch (CommonException e) { e.printStackTrace(); } } }
相关文章推荐
- java 后台使用gson 将json字符串转换为List<Map<String,object>> 数组
- JAVA对LIST<Map<String,Object>>的排序
- java统计数量List<Map<String,Object>
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- List<map<String,Object>>java遍历
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值 .
- jdbc查询返回来的List<Map<String, Object>> 转换成List<Users>
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- JAVA遍历List<Map<String,Object>> 如何根据List中Map的Value的值进行遍历
- java 将jso 格式的字符串转换为List<Map<String,String>>
- 7 Lucene笔记(七):第三方工具,将javabean、list、Map<String,object>转成json文本
- Java List<Map<String, Object>>生成树
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- Java实现List<Map<String, Object>> 转Map<Object, Object>
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- java list<Map<String,Object>>排序
- JavaBean与Map<String,Object>相互转换
- JAVA中对List<Map<String,Object>>中的中文汉字进行排序
- 用于把List<Object>转换成Map<String,Object>形式