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

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

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

如下所示:

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對象轉(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(); 
  // 獲取對象對應(yīng)類中的所有屬性域 
  Field[] fields = bean.getClass().getDeclaredFields(); 
  for (Field field : fields) { 
   // 獲取屬性名 
   String varName = field.getName(); 
   // 修改訪問控制權(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) {//判斷變量的類型 
    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ù)訪問控制權(quán)限 
   field.setAccessible(accessFlag); 
  } 
  return dbObject; 
 } 
 
 /** 
  * 把DBObject轉(zhuǎn)換成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; 
 } 
}

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

相關(guān)文章

  • spring cloud gateway網(wǎng)關(guān)路由分配代碼實例解析

    spring cloud gateway網(wǎng)關(guān)路由分配代碼實例解析

    這篇文章主要介紹了spring cloud gateway網(wǎng)關(guān)路由分配代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • 詳解Java List的擴容機制原理及應(yīng)用

    詳解Java List的擴容機制原理及應(yīng)用

    在Java中,List是一種非常常用的數(shù)據(jù)結(jié)構(gòu),用于存儲有序的元素集合,本文將分析Java List的擴容機制原理,并通過示例代碼和測試代碼來加強闡述內(nèi)容,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Java畢業(yè)設(shè)計實戰(zhàn)之健身俱樂部管理系統(tǒng)的實現(xiàn)

    Java畢業(yè)設(shè)計實戰(zhàn)之健身俱樂部管理系統(tǒng)的實現(xiàn)

    這是一個使用了java+SSM+Mysql+Jsp開發(fā)的健身俱樂部管理系統(tǒng),是一個畢業(yè)設(shè)計的實戰(zhàn)練習(xí),具有俱樂部管理該有的所有功能,感興趣的朋友快來看看吧
    2022-02-02
  • springcloud項目占用內(nèi)存好幾個G導(dǎo)致服務(wù)器崩潰的問題

    springcloud項目占用內(nèi)存好幾個G導(dǎo)致服務(wù)器崩潰的問題

    這篇文章主要介紹了springcloud項目占用內(nèi)存好幾個G導(dǎo)致服務(wù)器崩潰的問題,本文給大家分享解決方案供大家參考,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • JAVA內(nèi)存模型(JMM)詳解

    JAVA內(nèi)存模型(JMM)詳解

    這篇文章主要介紹了JAVA內(nèi)存模型(JMM)詳解的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 使用Java實現(xiàn)接口攔截器來監(jiān)控接口的執(zhí)行情況

    使用Java實現(xiàn)接口攔截器來監(jiān)控接口的執(zhí)行情況

    在排查問題的時候,由于沒有對接口的執(zhí)行情況,以及入?yún)⑦M行監(jiān)控,所以排查起問題就特別費勁,今天我們就一起來寫一個接口的攔截器來監(jiān)控接口的執(zhí)行情況吧
    2024-01-01
  • SpringBoot對接Spark過程詳解

    SpringBoot對接Spark過程詳解

    這篇文章主要介紹SpringBoot接入Spark的方法的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望能幫助大家解決問題
    2023-02-02
  • java實現(xiàn)簡單的掃雷小游戲

    java實現(xiàn)簡單的掃雷小游戲

    這篇文章主要為大家詳細介紹了java實現(xiàn)簡單的掃雷小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Hibernate延遲加載原理與實現(xiàn)方法

    Hibernate延遲加載原理與實現(xiàn)方法

    這篇文章主要介紹了Hibernate延遲加載原理與實現(xiàn)方法,較為詳細的分析了Hibernate延遲加載的概念,原理與相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2016-03-03
  • Java自然排序Comparable使用方法解析

    Java自然排序Comparable使用方法解析

    這篇文章主要介紹了Java自然排序Comparable使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04

最新評論