• java操作mongodb时,对象bean和DBObject相互转换的方法


    package com.iqbon.spider.util;  
      
    import java.lang.reflect.Field;  
    import java.lang.reflect.InvocationTargetException;  
    import java.util.Date;  
      
    import org.apache.commons.beanutils.BeanUtils;  
      
    import com.mongodb.BasicDBObject;  
    import com.mongodb.DBObject;  
      
    public class BeanUtil {  
      
      /** 
       * 把实体bean对象转换成DBObject 
       * @param bean 
       * @return 
       * @throws IllegalArgumentException 
       * @throws IllegalAccessException 
       */  
      public static <T> DBObject bean2DBObject(T bean) throws IllegalArgumentException,  
          IllegalAccessException {  
        if (bean == null) {  
          return null;  
        }  
        DBObject dbObject = new BasicDBObject();  
        // 获取对象对应类中的所有属性域  
        Field[] fields = bean.getClass().getDeclaredFields();  
        for (Field field : fields) {  
          // 获取属性名  
          String varName = field.getName();  
          // 修改访问控制权限  
          boolean accessFlag = field.isAccessible();  
          if (!accessFlag) {  
            field.setAccessible(true);  
          }  
          Object param = field.get(bean);  
          if (param == null) {  
            continue;  
          } else if (param instanceof Integer) {//判断变量的类型  
            int value = ((Integer) param).intValue();  
            dbObject.put(varName, value);  
          } else if (param instanceof String) {  
            String value = (String) param;  
            dbObject.put(varName, value);  
          } else if (param instanceof Double) {  
            double value = ((Double) param).doubleValue();  
            dbObject.put(varName, value);  
          } else if (param instanceof Float) {  
            float value = ((Float) param).floatValue();  
            dbObject.put(varName, value);  
          } else if (param instanceof Long) {  
            long value = ((Long) param).longValue();  
            dbObject.put(varName, value);  
          } else if (param instanceof Boolean) {  
            boolean value = ((Boolean) param).booleanValue();  
            dbObject.put(varName, value);  
          } else if (param instanceof Date) {  
            Date value = (Date) param;  
            dbObject.put(varName, value);  
          }  
          // 恢复访问控制权限  
          field.setAccessible(accessFlag);  
        }  
        return dbObject;  
      }  
      
      /** 
       * 把DBObject转换成bean对象 
       * @param dbObject 
       * @param bean 
       * @return 
       * @throws IllegalAccessException 
       * @throws InvocationTargetException 
       * @throws NoSuchMethodException 
       */  
      public static <T> T dbObject2Bean(DBObject dbObject, T bean) throws IllegalAccessException,  
          InvocationTargetException, NoSuchMethodException {  
        if (bean == null) {  
          return null;  
        }  
        Field[] fields = bean.getClass().getDeclaredFields();  
        for (Field field : fields) {  
          String varName = field.getName();  
          Object object = dbObject.get(varName);  
          if (object != null) {  
            BeanUtils.setProperty(bean, varName, object);  
          }  
        }  
        return bean;  
      }  
    } 

    出自:http://iqbon.iteye.com/blog/1756118

  • 相关阅读:
    使用C#调用Java带MIME附件WebService方法的初步设想
    到底是哪里给我插的广告?
    jQuery mobile X天教程 目录
    让ksoap支持wsse加密的soap报文
    第一天 认识jQuery mobile 框架,资源,书籍
    谈谈去那里找开源项目
    第二天 jQuery mobile 的Page&Dialogs,Toolbars,Button,listView全接触
    增强型MonkeyRunner 脚本计划
    以前我喜欢盗版,但是,我现在痛恨盗版
    android Handler 机制研究学习笔记
  • 原文地址:https://www.cnblogs.com/azhqiang/p/5591623.html
Copyright © 2020-2023  润新知