MongoDB中bean与DBObject之间的转换
来源:互联网 发布:steam淘宝买游戏怎么搞 编辑:程序博客网 时间:2024/04/29 16:18
- 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;
- }
- }
0 0
- MongoDB中bean与DBObject之间的转换
- Java中Bean与Map/Json/DBObject的相互转换
- MongoDB DBObject和JavaBean实体转换
- MongoDB DBObject和JavaBean实体转换
- arx 。net二次开发中DBObject类型转换的问题。
- json 与 bean 之间的date转换
- json 与 bean 之间的date转换
- json 与 bean 之间的date转换
- Json串与List<Bean>、Bean之间的转换,处理类中List<Bean>属性的序列化问题
- 利用JAXB进行Bean与XML之间的转换
- java注解实现map与bean之间的转换
- JAXB实现JAVA BEAN与XML之间的转换
- JAXB 实现bean与xml之间的转换
- 使用内省机制实现Map与Bean之间的转换
- java bean和json之间的转换
- json数据和bean之间的转换
- Xml和bean之间的相互转换
- Json与bean的转换
- 如何快速掌握一门编程语言
- Selenium2+TestNG的使用
- ADB server didn't ACK 解决方法
- 第十二周 项目六(4)1000以内所有素数
- 设计模式学习--组合
- MongoDB中bean与DBObject之间的转换
- PHP构造函数和其他魔法函数
- 第11周项目6回文数
- 设计模式学习--装饰
- 第十一周项目5-当年第几天
- java反射机制详解
- Splunk 会议回顾: 大数据的关键是机器学习
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
- Java学习笔记