加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 14:43:54 所属栏目:Java 来源:网络整理
导读:如下所示: 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 co

如下所示:

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; 
 } 
}

以上就是小编为大家带来的java操作mongodb时,对象bean和DBObject相互转换的方法(推荐)全部内容了,希望大家多多支持编程小技巧~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读