项目中常常要将数据库中查询出来的记录集转化为JavaBean对象,目前Apache提供的
BeanUtils 和 PropertyUtils 为数据库中字段名与Bean对象中属性名一致的情况提供了
很好的自动化处理方案。但是在实际应用中,数据库中的字段名常常包含了下划线,而在
JavaBean中的属性名一般都去掉了下划线,以字段首字母大写为分隔标记,尤其是在使用了
自动化生成PO对象的工具时,这种情况尤其常见。如果采用 jdbcTemplate 之类的DAO
访问数据库时,Map 与 Bean 的转化就成为了一个难题。
经过思考,本人写了一段可以将数据库中查询出来的Map对象自动转化为对应的PO的
代码,分享如下:
static BeanUtilsBean beanUtilsBean = new BeanUtilsBean(); static{ beanUtilsBean.getConvertUtils().register( new IntegerConverter(null), Integer.class); beanUtilsBean.getConvertUtils().register(new LongConverter(null), Long.class); beanUtilsBean.getConvertUtils().register(new DoubleConverter(null), Double.class); beanUtilsBean.getConvertUtils().register(new StringConverter(null), String.class); } public static void map2Bean(Object bean, Map<String, ?> map) { if (bean == null || map == null) return; Field[] fds =bean.getClass().getDeclaredFields(); for (Field des : fds) { String prop = des.getName(); String key = null; if ((key = setIgnoreCaseContains(map.keySet(), prop)) != null) { try { beanUtilsBean.setProperty(bean, prop, map.get(key)); } catch (IllegalAccessException e) { logger.error(" Map 转换 Bean失败:", e); } catch (InvocationTargetException e) { logger.error(" Map 转换 Bean失败:", e); } } } } private static String setIgnoreCaseContains(Set<String> set, String prop) { for (String str : set) { if (str.replaceAll("_", "").equalsIgnoreCase(prop)) { return str; } } return null; }
相关推荐
`MapUtils`类通常用于将Map对象转换为Java Bean对象,这在我们需要将存储在Map中的键值对数据转化为具有明确属性的对象时非常有用。例如,假设我们有一个用户信息的Map,其中键是属性名(如"name","age"),值是...
Bean与MAP间互转换的工具类。 1.将一个 Map 对象转化为一个 JavaBean,可指定BEAN的类型; 2.将一个 JavaBean 对象转化为一个 HashMap;
本知识点重点讲解将List<Bean>转换为List<Map>的过程,这在进行Web开发、数据处理以及与前端交互等场景中非常常见。同时,也会涉及List转换为List及list转换为JsonArray的内容。 ### List<Bean>转换为List<Map> 在...
Java_Bean2Map,将实体类转化成对应的map的工具类
将list<Map>转换成JavaBean的工具类
在Java中,这可能涉及到对象的序列化(如转化为JSON或XML)、类型转换(如String到Integer),或者Java Bean之间的映射。Apache Commons Lang、Dozer、ModelMapper等库提供了丰富的转换工具,简化了这一过程。 在...
标题中的“map转化为list”指的是在编程中,我们经常需要将Map对象的键值对转换成List对象,以便于进一步处理或展示数据。这个过程通常涉及到Java集合框架中的转换操作,尤其是在处理数据结构时。 在Java中,Map是...
一般使用springjdbc、hibernate的sql查询,库获取到的数据都是List<Map, Object>>结果集,如果我们要转化为JavaBean,则需要做一系列的map.get(),然后obj.set()。 此工程中就是解决List<Map, Object>>转化为...
浅谈对象与Map相互转化 在 Java 开发中,对象与 Map 的相互转换是非常常见的需求。例如,在 Web 项目中,我们需要将 Java 对象转换为 JSON 数据,以便于前端 JavaScript 代码对其进行处理。又或者,在数据处理时,...
总的来说,通过Spring JDBC的JdbcTemplate,我们可以方便地将数据库查询结果转化为Map对象,实现灵活的数据处理。这种方式简化了数据操作,提高了代码的可维护性,但同时也需要注意类型转换的风险。在实际开发中,...
通过引用【opevcsv】依赖,逐行读取数据 并转为Map,Object>格式,后续可以通过BeanUtil.MaptoBean()方法将map转为你需要的bean对象; csv文件必须带表头,bean对象命名符合驼峰格式; 通过此方法可以快速的将文件...
Javabean和map相互转化方法代码示例 在 Java 开发中,经常需要将 JavaBean 对象和 Map 对象相互转换。例如,在导入数据时,可能需要将 Map 对象转换为 JavaBean 对象,以便更方便地处理数据。本文将介绍 JavaBean ...
在Java中操作MongoDB数据库时,常常需要将Java对象(对象Bean)与MongoDB的数据表示对象DBObject进行相互转换。这主要是因为MongoDB的驱动程序使用DBObject来存储和检索数据,而我们通常会用面向对象的方式来定义和...
标签中的"jsontoBean"可能意味着在Java后端处理数据时,会用到JSON对象与Java Bean之间的转换。在获取到Google Maps API返回的JSON响应后,我们可能需要将其转化为Java对象便于操作。例如,使用Gson库可以轻松实现这...
在Spring XML配置中,SpEL允许我们动态地设置Bean的属性,包括List和Map类型的属性。本文主要探讨了如何在Spring中使用SpEL引用List和Map的元素,并揭示其背后的原理。 在传统的XML配置中,注入String类型的List和...
总结起来,Java实体映射是Java开发中连接数据库和业务逻辑的重要手段,它将数据库操作转化为更符合面向对象思维的方式,提高了开发效率。在实际项目中,如MySQL这样的关系型数据库通常会结合Java ORM框架,如...
MD5,BASE64,JSON,MAP,STRING
在实际开发中,BeanMapper可以广泛应用于各种场景,例如Web服务的数据绑定、数据库记录与Java对象的转化、JSON数据与Java对象的互换等。通过使用BeanMapper,开发者可以专注于业务逻辑,而不是数据转换的细节,从而...
这个方法用于将一个JSON格式的字符串转换为Java Bean对象或Map。例如,在示例中,`JSON.parseObject(jsonPerson, Person.class)` 将JSON字符串转换为`Person`类的实例。这里`Person`类需要有与JSON对象对应的属性,...
当要转化的map的value值中包含空指针时,会抛出NullPointerException异常。 例如: ```java public void streamToMap2() { List<StudentDTO> studentDTOS = Lists.newArrayList(); studentDTOS.add(new ...