代码仅供练习(反射,泛型):

package utils;
import java.lang.reflect.Field;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import pojo.User;
public class BeanFromDBObject {
/**
* @Description:bean-->DBObject
* @param bean
* @return DBObject 返回类型
*/
public static <T> DBObject getDBObject(T bean) {
if (bean == null) {
return null;
}
DBObject obj = new BasicDBObject();
Field[] field = bean.getClass().getDeclaredFields();
for (Field f : field) {
String name = f.getName();
if (!f.isAccessible()) {
f.setAccessible(true);
}
try {
Object oj = f.get(bean);
if (oj == null) {
obj.put(name, "");
} else if (oj instanceof Integer) {
int value = ((Integer) oj).intValue();
obj.put(name, value);
} else if (oj instanceof Double) {
Double value = ((Double) oj).doubleValue();
obj.put(name, value);
} else if (oj instanceof Float) {
Float value = ((Float) oj).floatValue();
obj.put(name, value);
} else if (oj instanceof Boolean) {
Boolean value = ((Boolean) oj).booleanValue();
obj.put(name, value);
} else if (oj instanceof Long) {
Long value = ((Long) oj).longValue();
obj.put(name, value);
} else {
obj.put(name, oj);
} } catch (Exception e) {
e.printStackTrace();
} }
return obj; }
}

MongoDB:实体对象(javabean)转DBObject的更多相关文章

  1. java操作mongodb时,对象bean和DBObject相互转换的方法

    package com.iqbon.spider.util; import java.lang.reflect.Field; import java.lang.reflect.InvocationTa ...

  2. 把实体bean对象转换成DBObject工具类

    import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util ...

  3. MongoDB学习笔记~MongoDB实体中的值对象

    回到目录 注意,这里说的值对象是指在MongoDB实体类中的,并不是DDD中的值对象,不过,两者也是联系,就是它是对类的补充,自己本身没有存在的价值,而在值对象中,也是不需要有主键Id的,这与DDD也 ...

  4. MongoDB学习笔记~数据结构与实体对象不一致时,它会怎么样?

    回到目录

  5. Java实战之02Hibernate-02映射、一级缓存、实体对象状态

    五.映射基础 1.实体类采用javabean的编写规范 JavaBean编写规范: a.类一般是public的 b.有默认的构造方法 c.字段都是私有的 d.提供公有的getter和setter方法 ...

  6. 利用HttpWebRequest实现实体对象的上传

    一 简介 HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择.它们支持一系列有用的属性.这两个类位 于System.Net命名空间,默认情况下这个类对 ...

  7. Entity Framework Code First实体对象变动跟踪

    Entity Framework Code First通过DbContext.ChangeTracker对实体对象的变动进行跟踪,实现跟踪的方式有两种:变动跟踪快照和变动跟踪代理. 变动跟踪快照:前面 ...

  8. C#获取EF实体对象或自定义属性类的字段名称和值

    在年前上班的时候遇到了一个问题是这样描述的:我前台设计一个页面,是标签和文本框,当用户修改了哪个文本框的值,将该修改前的值.修改后的值,该值对应的字段,该值对应的行id获取到保存到数据库的某张表里.现 ...

  9. Visor 应用之一 通过ER 设计生成数据库脚本和实体对象

    前言 Visor(http://www.visor.com.cn)   是一个基于HTML5 Canvas 开发的IDE 框架和设计开发平台,有关Visor的设计架构和技术应用,在以后的文章里会逐渐跟 ...

随机推荐

  1. overflow遭遇场景

    没有设置高度而由内容撑高的子div在遇到固定高度的父div,想做一个离上边缘有间距的效果,给padding-top会同时撑大父div,给margin-top会把父div拉下来,这时候的子div像是紧紧 ...

  2. Class类

    package com.imooc.reflect; public class ClassDemo1 { public static void main(String[] args) { //Foo的 ...

  3. Python之路-python(rabbitmq、redis)

    一.RabbitMQ队列 安装python rabbitMQ module pip install pika or easy_install pika or 源码 https://pypi.pytho ...

  4. kubernetes 1.3 的安装和集群环境部署

    简介: Docker:是一个开源的应用容器引擎,可以为应用创建一个轻量级的.可移植的.自给自足的容器. Kubernetes:由Google开源的Docker容器集群管理系统,为容器化的应用提供资源调 ...

  5. tomcat 设置集群

    本文介绍的是使用tomcat内置的集群功能.跟官方文档的区别是没有使用广播,而是使用了static membership的方式. 需要修改server.xml 放在哪个元素下来的,是Host还是啥记不 ...

  6. 自动生成pdf书签(仅适用于Adobe Acrobat on windows )

    必备软件 1.Adobe Acrobat. 2.AutoBookmark 为adobe acrobat的自动生成书签的插件(我用的这个:AutoBookmark Standard Plug-in),下 ...

  7. Leetcode: Non-overlapping Intervals

    Given a collection of intervals, find the minimum number of intervals you need to remove to make the ...

  8. Python 模块,数据类型,元组

    模块 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的. s ...

  9. 多列布局——column-count

    column-count属性主要用来给元素指定想要的列数和允许的最大列数.其语法规则: column-count:auto | <integer> 取值说明: 属性值 属性值说明 auto ...

  10. linux vagrant visual box 虚拟机比较慢

    提现在跑本地虚拟机开发环境很慢,直接影响工作效率,网上搜了,亲测可用. cite:     http://leo108.com/pid-2072.asp 在 vagrantfile中加入 config ...