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;
}
}

出自:http://iqbon.iteye.com/blog/1756118

最新文章

  1. javascript高性能编程-算法和流程控制
  2. animation-timing-function: steps() 详解
  3. 将GridView数据导入到excel,并提供下载
  4. ZKUI中文编码以及以docker方式运行的问题
  5. android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件
  6. source insight 支持CC 文件
  7. Linux中的栈:用户态栈/内核栈/中断栈
  8. js stringObject的indexOf方法
  9. 201521123031 《Java程序设计》第9周学习总结
  10. 【转】javascript 分号问题
  11. python学习日记(面向对象——继承)
  12. centos7初上手1-安装mysql数据库
  13. ubuntu 16.04 和win10双系统ubuntu无法更新问题解决
  14. nuxt项目部署
  15. Shell的Posix字符分类
  16. 用 ArrayList 集合调用商品类
  17. Spring-Boot构建多模块项目
  18. Monotonic Array LT896
  19. 【Linux高级驱动】平台设备驱动机制的编程流程与编译进内核
  20. npm使用国内淘宝镜像的方法

热门文章

  1. CentOS 7 安装Docker CE
  2. GUC-6 Callable 接口
  3. xshell连接不上linux问题
  4. windows下mysql配置(第一次)
  5. django中缓存配置
  6. 安卓 开机 动画 酷派大神F1开机动画 美化 自定义 修改
  7. 【20181102T1】优美的序列【二分+ST表】
  8. loj6089 小 Y 的背包计数问题
  9. PHP中CGI,FastCGI,PHP-CGI与PHP-FPM对比
  10. 利用meterpreter下的Venom免杀后门