当前位置: 首页 > 编程笔记 >

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

斜光耀
2023-03-14
本文向大家介绍java操作mongodb时,对象bean和DBObject相互转换的方法(推荐),包括了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; 
 } 
}

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

 类似资料:
  • 本文向大家介绍php对象和数组相互转换的方法,包括了php对象和数组相互转换的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php对象和数组相互转换的方法。分享给大家供大家参考。具体分析如下: 这里定义2个php匿名对象和数组相互转换的函数,代码如下: 用法示例如下: 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍PHP实现数组和对象的相互转换操作示例,包括了PHP实现数组和对象的相互转换操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现数组和对象的相互转换操作。分享给大家供大家参考,具体如下: 关于php中想让对象以数组的形式访问,这时候就需要使用到get_object_vars()函数了。先来介绍一下这个函数。 官方文档是这样解释的: 返回由 obj 指定的对象中定

  • 本文向大家介绍jQuery对象和DOM对象之间相互转换的方法介绍,包括了jQuery对象和DOM对象之间相互转换的方法介绍的使用技巧和注意事项,需要的朋友参考一下 在讨论jQuery对象和DOM对象的相互交换之前,先约定好定义变量的风格。如果获取的对象是jQuery对象,那么在变量前加上$,例如: 如果获取的是DOM对象,则定义如下: 1.jQuery对象转成DOM对象 jQuery对象不能使用D

  • 本文向大家介绍jquery对象和DOM对象的任意相互转换,包括了jquery对象和DOM对象的任意相互转换的使用技巧和注意事项,需要的朋友参考一下 什么是jQuery对象? ---就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,其可以使用jQuery里的方法。 比如: $("#test").html() 意思是指:获取ID为test的元素内的html代码。其中

  • 本文向大家介绍jquery对象和DOM对象的相互转换详解,包括了jquery对象和DOM对象的相互转换详解的使用技巧和注意事项,需要的朋友参考一下 jquery对象和DOM对象的相互转换 在讨论jquery对象和DOM对象的相互转换之前,先约定好定义变量的风格如果获取的是jquery对象,那么在变量前面加上$,例如 var $varible = jquery对象; 如果获取的是DOM对象,则定义如

  • 本文向大家介绍jquery对象和javascript对象即DOM对象相互转换,包括了jquery对象和javascript对象即DOM对象相互转换的使用技巧和注意事项,需要的朋友参考一下 jQuery 对象是通过 jQuery 包装DOM 对象后产生的对象。jQuery 对象是 jQuery 独有的,其可以使用 jQuery 里的方法,但是不能使用 DOM 的方法;例如: $("#img").at