`
littie1987
  • 浏览: 133885 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JavaBean对象转DBOBject对象

 
阅读更多
package com.paile.utils.beans;

import java.beans.PropertyDescriptor;
import java.sql.Timestamp;
import java.util.List;
import java.util.Set;

import org.apache.commons.beanutils.PropertyUtilsBean;

import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;

/***
 * 由JavaBean 到mongoDB的DBObject对象的转换(不包含子对象和集合对象)
 * @author libo
 */
public class SimpleJavaBean2DBObject {

	/***
	 * 将普通Java对象属性复制到DBObject里面(不包含子对象和集合对象)
	 * @param ogi  普通Java对象
	 *@return 返回DBObject对象
	 */
	public static DBObject copyProperties(Object orig,DBObject dbObj)throws Exception{
		if(orig==null){
			throw new IllegalArgumentException("No object bean specified,or is null");
		}
		PropertyUtilsBean pro = new PropertyUtilsBean();
		PropertyDescriptor[] origDescriptors = pro.getPropertyDescriptors(orig.getClass());
		  for (int i = 0; i < origDescriptors.length; i++) {
			  PropertyDescriptor pdesc =  origDescriptors[i];
              String name = pdesc.getName();
              if ("class".equals(name)) {
                  continue; // No point in trying to set an object's class
              };
              if (pro.isReadable(orig, name)){
                 Class<?> t = pdesc.getPropertyType();
                 boolean isPrimitive = MyBeanUtils.isPrimitiveType(t);
                 if(isPrimitive){
                	 //基础类型(8大类型+String)
                	 Object value = pro.getSimpleProperty(orig, name);
                	 dbObj.put(name, value);
                 }else if(t == Timestamp.class){
                	 Object value = pro.getSimpleProperty(orig, name);
                	 dbObj.put(name, value);
                 }else{
                	 Object value = pro.getSimpleProperty(orig, name);
                	 if(t.isAssignableFrom(List.class)
                			 ||t.isAssignableFrom(Set.class)){
                		 if(value!=null){
                			 List list = (List)value;
                			 if(list.isEmpty())
                				 continue;
                			BasicDBList dbList = new BasicDBList();
                			 for(int j = 0;j<list.size();j++){
                				 Object object = list.get(j);
                				 DBObject db = new BasicDBObject();
                				 if(object!=null)
                					 copyProperties(object, db);
                				 dbList.add(db);
                			 }
                			 dbObj.put(name, dbList);
                		 }
                	 }else{
                		 DBObject db = new BasicDBObject();
                		 if(value!=null)
                			 copyProperties(value, db );
                    	 dbObj.put(name, db);
                	 }
                 }
              }
		  }
		  return null;
	}
}

 

分享到:
评论

相关推荐

    Java反射 JavaBean对象自动生成插入,更新,删除,查询sql语句操作.docx

    "Java反射 JavaBean 对象自动生成插入、更新、删除、查询sql语句操作" Java反射JavaBean对象自动生成插入、更新、删除、查询sql语句操作是指通过Java反射机制,依据提供的表名、POJO类型、数据对象自动生成sql语句...

    数据库实体对象转换JavaBean_数据库对象转Javabean_

    在Java开发中,数据库操作是不可或缺的一部分,而数据库对象与Java Bean之间的转换是数据层与业务层交互的关键。本文将详细讲解如何将数据库实体对象转换为Java Bean对象,以实现数据的有效封装和处理。 首先,我们...

    xml转javaBean,javaBean转xml,xml标签大小写问题,以及对xml特殊符号的处理

    JavaBean转XML的过程与XML转JavaBean相反。首先,创建一个JAXBContext对象,然后获取Marshaller实例。通过调用Marshaller的marshal()方法,我们可以将JavaBean对象转换为XML字符串或者写入XML文件。 3. XML标签大小...

    利用JAXB进行xml和javabean之间转换

    而JAXB(Java Architecture for XML Binding)是Java提供的一种标准API,它允许我们轻松地在Java对象(javabean)和XML文档之间进行转换。通过JAXB,开发者可以避免手动编写XML解析和序列化代码,极大地提高了开发...

    忽略字段的首字母大小写,将json字符串转成javabean对象

    忽略字段的首字母大小写,将json字符串转成javabean对象,解决Java对象中属性中首字母大写而取不到值(取到的值为空)的问题 忽略字段的首字母大小写,将json字符串转成List,解决Java对象中属性中首字母大写而取不...

    JavaBean与Json相互转换

    JavaBean是Java对象的一种标准设计模式,主要用于封装数据和业务逻辑;而Json(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析和生成。两者之间的相互转换在Web...

    将excel实体表格生成为JavaBean对象

    通过读取解析固定模板中的内容,生成JavaBean类。 除了生成Bean ,也可以生成其他类,可自行扩展。 这种场景比较局限,项目开发中用到的不多,如果定义类有几十、表字段很多,同时应对项目初期,表结构表更需求较多...

    xml与javabean的转换

    在实际开发中,有时我们需要将XML文件中的数据转换为JavaBean对象,或者将JavaBean对象转换为XML格式的数据,这可以通过一些库来实现,比如Jox。 Jox(Java Object to XML)是一个轻量级的Java库,专门用于在Java...

    通过Java反射机制获取JavaBean对象

    1.通过Java反射机制获取JavaBean对象。 2.通过JavaBean全路径字符串获取JavaBean对象。 3.获取JavaBean注解信息

    扫描指定包下的class,并将javaBean对象动态注册到spring环境中

    Spring提供了多种方式来实现这一点,例如使用`BeanDefinition`对象。`BeanDefinition`包含了关于Bean的所有元数据,如类名、依赖关系、初始化方法等。一旦创建了`BeanDefinition`,就可以将其注册到`...

    JavaBean与JsonString的相互转换

    JavaBean是Java对象的一种规范,用于封装数据,而JsonString是一种轻量级的数据交换格式,常用于前后端交互。本篇将深入探讨JavaBean与JsonString之间的相互转换方法。 1. **什么是JavaBean** JavaBean是一种遵循...

    数据库自动生成JavaBean对象

    下载了绝对不后悔,100%好用,支持Mysql Oracle SQL Server ,PostgreSQl.等数据库 还有各种集成的小工具 表名互转驼峰,,,,Json.XML 字符串格式化..JSon与XMl互转,String字符串拼接等功能

    javaBean to json java对象转换json jar

    总结来说,`javaBean to json java对象转换 jar`这个主题涉及到Java对象的序列化、JSON数据格式以及Java的归档文件系统。通过使用类似`JsonFactory.toJson()`这样的方法,开发者可以方便地将JavaBean对象转换为JSON...

    json转Map,转javaBean,javBean和Map转json

    如果需要将JavaBean对象转换为Map,可以自定义一个方法或者使用一些第三方库如ModelMapper。这里展示一个自定义转换的例子: ```java public Map, Object&gt; toMap(Object obj) { Map, Object&gt; map = new HashMap...

    JavaBean和xml转换

    在Java应用中,我们经常需要将JavaBean对象序列化为XML格式,或者从XML文档反序列化成JavaBean对象,以实现数据的持久化或在网络间传递。 Java内置的JAXB(Java Architecture for XML Binding)框架提供了JavaBean...

    Json一键转Javabean工具

    "Json一键转Javabean工具"是一个实用的开发辅助工具,它能够帮助Java开发者快速地将JSON格式的数据转换成对应的JavaBean对象,极大地提高了开发效率。 JSON转换为JavaBean的过程通常包括以下步骤: 1. **解析JSON...

    Xml与javaBean互转.zip

    通过JAXB,你可以很容易地将JavaBean对象转换为XML,并将XML反序列化回JavaBean。使用JAXB,你需要定义一个XML绑定(@XmlRootElement和@XmlAccessorType等注解)来指定JavaBean的字段如何映射到XML元素。 2. **DOM...

    xml与javabean之间的相互转换,很方便,导入即可使用

    XStream是一款强大的Java库,它能将Java对象序列化为XML,同时也能将XML反序列化为Java对象,极大地简化了XML与JavaBean之间的交互。其工作原理主要是通过反射机制获取Java对象的属性,并将其映射到XML元素上。 ...

    使用第三方工具将各种对象转成json格式

    1. **JavaBean对象转JSON** JavaBean是一种遵循特定规范的Java类,通常用于封装数据。将JavaBean对象转为JSON时,我们可以使用如Jackson、Gson、Fastjson等流行的JSON库。以Jackson为例,首先需要引入Jackson库的...

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

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

Global site tag (gtag.js) - Google Analytics