bean和DBObject相互转换的方法
时间:2021-07-01 10:21:17
帮助过:3人阅读
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;
}
}
出自:http://iqbon.iteye.com/blog/1756118
bean和DBObject相互转换的方法
标签: