当前位置: 首页 > news >正文

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;

    }
}

 

转载于:https://www.cnblogs.com/byteworld/p/5924626.html

相关文章:

  • 关于TCP/IP协议
  • 【Python开发】Python PIL ImageDraw 和ImageFont模块学习
  • CSS学习(一)
  • 问题
  • jquery登录的异步验证
  • for循环的嵌套
  • 关于cmd下使用taskkill无法终止进程名包含空格的进程的解决方案
  • Hibernate —— Entity.hbm.xml
  • 【SQLServer2008】之Win10 安装 SQL Server 2008
  • Atitit.eclise的ide特性-------abt 编译
  • react.js 生命周期componentDidUpdate的另类用法:防止页面过渡刷新
  • JS内置对象
  • python简单粗暴多进程之concurrent.futures
  • 因果图法
  • css3的box-sizing
  • eclipse(luna)创建web工程
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java新版本的开发已正式进入轨道,版本号18.3
  • Mithril.js 入门介绍
  • Ruby 2.x 源代码分析:扩展 概述
  • Spring Boot MyBatis配置多种数据库
  • TCP拥塞控制
  • Vue--数据传输
  • win10下安装mysql5.7
  • 简单基于spring的redis配置(单机和集群模式)
  • 一份游戏开发学习路线
  • 主流的CSS水平和垂直居中技术大全
  • const的用法,特别是用在函数前面与后面的区别
  • ​520就是要宠粉,你的心头书我买单
  • #include<初见C语言之指针(5)>
  • #预处理和函数的对比以及条件编译
  • $(selector).each()和$.each()的区别
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (理论篇)httpmoudle和httphandler一览
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转)创业家杂志:UCWEB天使第一步
  • (转载)虚函数剖析
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET轻量级ORM组件Dapper葵花宝典
  • [CISCN2019 华北赛区 Day1 Web2]ikun
  • [flume$2]记录一个写自定义Flume拦截器遇到的错误
  • [HTML]Web前端开发技术30(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • [ios] IOS文件操作的两种方式:NSFileManager操作和流操作【转】
  • [JavaEE] 线程与进程的区别详解
  • [LVGL]:MACOS下使用LVGL模拟器
  • [Machine Learning] Learning with Noisy Labels
  • [Notice] 朋友们,blog更新http://jiang-hongfei.spaces.live.com
  • [Oh My C++ Diary]函数重载
  • [POI2007] ZAP-Queries (莫比乌斯反演)
  • [python] 过年燃放烟花
  • [Python]—Linux Server 系统监控程序
  • [Salesforce组件开发][LWC] 弹出框开发
  • [Unity][VR]透视开发系列4-解决只看得到Passthrough但看不到Unity对象的问题
  • [Web开发] 网页的浏览器兼容性测试工具
  • [大牛翻译系列]Hadoop(22)附录D.2 复制连接框架