MongoDB:实体对象(javabean)转DBObject
代码仅供练习(反射,泛型):
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的更多相关文章
- java操作mongodb时,对象bean和DBObject相互转换的方法
package com.iqbon.spider.util; import java.lang.reflect.Field; import java.lang.reflect.InvocationTa ...
- 把实体bean对象转换成DBObject工具类
import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util ...
- MongoDB学习笔记~MongoDB实体中的值对象
回到目录 注意,这里说的值对象是指在MongoDB实体类中的,并不是DDD中的值对象,不过,两者也是联系,就是它是对类的补充,自己本身没有存在的价值,而在值对象中,也是不需要有主键Id的,这与DDD也 ...
- MongoDB学习笔记~数据结构与实体对象不一致时,它会怎么样?
回到目录
- Java实战之02Hibernate-02映射、一级缓存、实体对象状态
五.映射基础 1.实体类采用javabean的编写规范 JavaBean编写规范: a.类一般是public的 b.有默认的构造方法 c.字段都是私有的 d.提供公有的getter和setter方法 ...
- 利用HttpWebRequest实现实体对象的上传
一 简介 HttpWebRequest和HttpWebResponse类是用于发送和接收HTTP数据的最好选择.它们支持一系列有用的属性.这两个类位 于System.Net命名空间,默认情况下这个类对 ...
- Entity Framework Code First实体对象变动跟踪
Entity Framework Code First通过DbContext.ChangeTracker对实体对象的变动进行跟踪,实现跟踪的方式有两种:变动跟踪快照和变动跟踪代理. 变动跟踪快照:前面 ...
- C#获取EF实体对象或自定义属性类的字段名称和值
在年前上班的时候遇到了一个问题是这样描述的:我前台设计一个页面,是标签和文本框,当用户修改了哪个文本框的值,将该修改前的值.修改后的值,该值对应的字段,该值对应的行id获取到保存到数据库的某张表里.现 ...
- Visor 应用之一 通过ER 设计生成数据库脚本和实体对象
前言 Visor(http://www.visor.com.cn) 是一个基于HTML5 Canvas 开发的IDE 框架和设计开发平台,有关Visor的设计架构和技术应用,在以后的文章里会逐渐跟 ...
随机推荐
- overflow遭遇场景
没有设置高度而由内容撑高的子div在遇到固定高度的父div,想做一个离上边缘有间距的效果,给padding-top会同时撑大父div,给margin-top会把父div拉下来,这时候的子div像是紧紧 ...
- Class类
package com.imooc.reflect; public class ClassDemo1 { public static void main(String[] args) { //Foo的 ...
- Python之路-python(rabbitmq、redis)
一.RabbitMQ队列 安装python rabbitMQ module pip install pika or easy_install pika or 源码 https://pypi.pytho ...
- kubernetes 1.3 的安装和集群环境部署
简介: Docker:是一个开源的应用容器引擎,可以为应用创建一个轻量级的.可移植的.自给自足的容器. Kubernetes:由Google开源的Docker容器集群管理系统,为容器化的应用提供资源调 ...
- tomcat 设置集群
本文介绍的是使用tomcat内置的集群功能.跟官方文档的区别是没有使用广播,而是使用了static membership的方式. 需要修改server.xml 放在哪个元素下来的,是Host还是啥记不 ...
- 自动生成pdf书签(仅适用于Adobe Acrobat on windows )
必备软件 1.Adobe Acrobat. 2.AutoBookmark 为adobe acrobat的自动生成书签的插件(我用的这个:AutoBookmark Standard Plug-in),下 ...
- Leetcode: Non-overlapping Intervals
Given a collection of intervals, find the minimum number of intervals you need to remove to make the ...
- Python 模块,数据类型,元组
模块 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的. s ...
- 多列布局——column-count
column-count属性主要用来给元素指定想要的列数和允许的最大列数.其语法规则: column-count:auto | <integer> 取值说明: 属性值 属性值说明 auto ...
- linux vagrant visual box 虚拟机比较慢
提现在跑本地虚拟机开发环境很慢,直接影响工作效率,网上搜了,亲测可用. cite: http://leo108.com/pid-2072.asp 在 vagrantfile中加入 config ...