`
godsmell
  • 浏览: 10235 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Map与Bean的转化

    博客分类:
  • JAVA
 
阅读更多

     项目中常常要将数据库中查询出来的记录集转化为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;
	}

 

 

0
0
分享到:
评论

相关推荐

    Map和Bean灵活转换工具类

    `MapUtils`类通常用于将Map对象转换为Java Bean对象,这在我们需要将存储在Map中的键值对数据转化为具有明确属性的对象时非常有用。例如,假设我们有一个用户信息的Map,其中键是属性名(如"name","age"),值是...

    Bean与Map转换工具类BeanMapConverter.java

    Bean与MAP间互转换的工具类。 1.将一个 Map 对象转化为一个 JavaBean,可指定BEAN的类型; 2.将一个 JavaBean 对象转化为一个 HashMap;

    List转换为List

    本知识点重点讲解将List&lt;Bean&gt;转换为List&lt;Map&gt;的过程,这在进行Web开发、数据处理以及与前端交互等场景中非常常见。同时,也会涉及List转换为List及list转换为JsonArray的内容。 ### List&lt;Bean&gt;转换为List&lt;Map&gt; 在...

    Java_Bean2Map

    Java_Bean2Map,将实体类转化成对应的map的工具类

    将list转换成JavaBean

    将list&lt;Map&gt;转换成JavaBean的工具类

    各种转换,xml,实体bean,动态bean,map等

    在Java中,这可能涉及到对象的序列化(如转化为JSON或XML)、类型转换(如String到Integer),或者Java Bean之间的映射。Apache Commons Lang、Dozer、ModelMapper等库提供了丰富的转换工具,简化了这一过程。 在...

    map转化为list

    标题中的“map转化为list”指的是在编程中,我们经常需要将Map对象的键值对转换成List对象,以便于进一步处理或展示数据。这个过程通常涉及到Java集合框架中的转换操作,尤其是在处理数据结构时。 在Java中,Map是...

    浅谈对象与Map相互转化

    浅谈对象与Map相互转化 在 Java 开发中,对象与 Map 的相互转换是非常常见的需求。例如,在 Web 项目中,我们需要将 Java 对象转换为 JSON 数据,以便于前端 JavaScript 代码对其进行处理。又或者,在数据处理时,...

    java中将数据库中数据赋值给Map对象源代码

    总的来说,通过Spring JDBC的JdbcTemplate,我们可以方便地将数据库查询结果转化为Map对象,实现灵活的数据处理。这种方式简化了数据操作,提高了代码的可维护性,但同时也需要注意类型转换的风险。在实际开发中,...

    java 读取csv 并转为Map<String,Object>

    通过引用【opevcsv】依赖,逐行读取数据 并转为Map,Object&gt;格式,后续可以通过BeanUtil.MaptoBean()方法将map转为你需要的bean对象; csv文件必须带表头,bean对象命名符合驼峰格式; 通过此方法可以快速的将文件...

    Javabean和map相互转化方法代码示例

    Javabean和map相互转化方法代码示例 在 Java 开发中,经常需要将 JavaBean 对象和 Map 对象相互转换。例如,在导入数据时,可能需要将 Map 对象转换为 JavaBean 对象,以便更方便地处理数据。本文将介绍 JavaBean ...

    java操作mongodb时,对象bean和DBObject相互转换的方法(推荐)

    在Java中操作MongoDB数据库时,常常需要将Java对象(对象Bean)与MongoDB的数据表示对象DBObject进行相互转换。这主要是因为MongoDB的驱动程序使用DBObject来存储和检索数据,而我们通常会用面向对象的方式来定义和...

    googleMap根据经纬度获取地理位置

    标签中的"jsontoBean"可能意味着在Java后端处理数据时,会用到JSON对象与Java Bean之间的转换。在获取到Google Maps API返回的JSON响应后,我们可能需要将其转化为Java对象便于操作。例如,使用Gson库可以轻松实现这...

    34 SpEL List和Map 引用应用示例及背后原理探究慕课专栏1

    在Spring XML配置中,SpEL允许我们动态地设置Bean的属性,包括List和Map类型的属性。本文主要探讨了如何在Spring中使用SpEL引用List和Map的元素,并揭示其背后的原理。 在传统的XML配置中,注入String类型的List和...

    java实体映射

    总结起来,Java实体映射是Java开发中连接数据库和业务逻辑的重要手段,它将数据库操作转化为更符合面向对象思维的方式,提高了开发效率。在实际项目中,如MySQL这样的关系型数据库通常会结合Java ORM框架,如...

    基础工具类

    MD5,BASE64,JSON,MAP,STRING

    BeanMapper-开源

    在实际开发中,BeanMapper可以广泛应用于各种场景,例如Web服务的数据绑定、数据库记录与Java对象的转化、JSON数据与Java对象的互换等。通过使用BeanMapper,开发者可以专注于业务逻辑,而不是数据转换的细节,从而...

    java Bean与json对象间的转换实例讲解

    这个方法用于将一个JSON格式的字符串转换为Java Bean对象或Map。例如,在示例中,`JSON.parseObject(jsonPerson, Person.class)` 将JSON字符串转换为`Person`类的实例。这里`Person`类需要有与JSON对象对应的属性,...

    Java lambda list转换map时,把多个参数拼接作为key操作

    当要转化的map的value值中包含空指针时,会抛出NullPointerException异常。 例如: ```java public void streamToMap2() { List&lt;StudentDTO&gt; studentDTOS = Lists.newArrayList(); studentDTOS.add(new ...

Global site tag (gtag.js) - Google Analytics