java操作mongodb时,对象bean和DBObject相互转换的方法(推荐)
发布时间:2020-05-29 08:40:18 所属栏目:Java 来源:互联网
导读:如下所示:packagecom.iqbon.spider.util;importjava.lang.reflect.Field;importjava.lang.reflect.InvocationTargetException;
|
如下所示:
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相互转换的方法(推荐)全部内容了,希望大家多多支持编程小技巧~ (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
