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的设计架构和技术应用,在以后的文章里会逐渐跟 ...
随机推荐
- WCF初识
WCF能干什么? 在win32中,应用程序是运行在进程的线程中的,.NET出现之后,出现了AppDomain,其实就相当于在进程和线程之间又又了一层包装层,类似于子进程的概念,在一个进程或者应用程序域 ...
- 从零开始的Android新项目1 - 架构搭建篇
记录一下新项目的搭建. 试想一下,如果没有历史负担,没有KPI压力,去新搭建一个项目,你会怎么设计和实现呢? 本系列文章不是教你怎么从0开始学Android,从0开始怎么建一个项目,而定位于零负担的情 ...
- 去掉comments
三种comments: /* Test program */ int main() { // variable declaration int a, b, c; /* This is a test m ...
- Android 通过 Wifi 调试 Debug (Android Studio)
参考资料: http://www.cnblogs.com/sunzhenxing19860608/archive/2011/07/14/2106492.html 前提: Android 手机 和 PC ...
- ios - loadView与viewDidload
从打印结果可以看出,先调用loadView再调用viewDidload 代码: // // ViewController.m // test // // Created by 裴波波 on 16/4/ ...
- [Android Tips] 13. How to Detect Tablet
/** * 判断是否是平板 * @param context * @return */ public static boolean isTablet(Context context) { return ...
- MVC4中重复使用JQuery Mobile Dialog的做法实践.
第一步:建立mobile项目类型 第二步:添加针对对话框的的DialogController.cs: 建立这个Controller的目的是此Dlg可以反复使用,把它做成一个固定界面,其他的Contro ...
- SqlServer分区表概述(转载)
什么是分区表 一般情况下,我们建立数据库表时,表数据都存放在一个文件里. 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在 ...
- 自定义view
这两篇文章不可错过,是最靠谱的基础文献.总的来说,如果想完全定制,就继承与于View类:如果只是在原有控件基础上拓展,那就继承TextView.Button或者LinearLayout等.接下来,就以 ...
- Linux之一条命令解决常见问题(持续更新)
# 1.删除0字节文件 find -type f -size 0 -exec rm -f {} \; # 2.批量文件重命名 find . -type f -name "*.txt" ...