欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java操作mongodb時(shí),對(duì)象bean和DBObject相互轉(zhuǎn)換的方法(推薦)

 更新時(shí)間:2016年11月06日 19:27:25   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇java操作mongodb時(shí),對(duì)象bean和DBObject相互轉(zhuǎn)換的方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

如下所示:

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 { 
 
 /** 
  * 把實(shí)體bean對(duì)象轉(zhuǎn)換成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(); 
  // 獲取對(duì)象對(duì)應(yīng)類(lèi)中的所有屬性域 
  Field[] fields = bean.getClass().getDeclaredFields(); 
  for (Field field : fields) { 
   // 獲取屬性名 
   String varName = field.getName(); 
   // 修改訪問(wèn)控制權(quán)限 
   boolean accessFlag = field.isAccessible(); 
   if (!accessFlag) { 
    field.setAccessible(true); 
   } 
   Object param = field.get(bean); 
   if (param == null) { 
    continue; 
   } else if (param instanceof Integer) {//判斷變量的類(lèi)型 
    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); 
   } 
   // 恢復(fù)訪問(wèn)控制權(quán)限 
   field.setAccessible(accessFlag); 
  } 
  return dbObject; 
 } 
 
 /** 
  * 把DBObject轉(zhuǎn)換成bean對(duì)象 
  * @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; 
 } 
}

以上就是小編為大家?guī)?lái)的java操作mongodb時(shí),對(duì)象bean和DBObject相互轉(zhuǎn)換的方法(推薦)全部?jī)?nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

最新評(píng)論