1.JavaBean
- public class Person {
- private String name;
- private Integer age;
- private String job;
- private List<String> school;
- private String address;
- private List<Score> score;
- //省略get/set方法
- }
- public class Score {
- private String cource_name;
- private Integer cource_score;
- //省略get/set方法
- }
2.JavaBean与Map相互转换(使用Apache Commons的BeanUtil实现)
- //Map<String,Object>转成JavaBean
- //测试已通过,Bean中包含另一个Bean成员也可以
- public static Object transMap2Bean(Map<String, Object> map, Object obj) {
- if (map == null || obj == null) {
- return null;BeanUtils
- }
- try {
- BeanUtils.populate(obj, map);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- return obj;
- }
- //JavaBean转成Map<String,Object>
- //测试已通过,Bean中包含另一个Bean成员也可以
- public static Map<String, Object> transBean2Map(Object obj) {
- if (obj == null) {
- return null;
- }
- Map<String, Object> map = new HashMap<String, Object>();
- try {
- BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
- PropertyDescriptor[] propertyDescriptors = beanInfo
- .getPropertyDescriptors();
- for (PropertyDescriptor property : propertyDescriptors) {
- String key = property.getName();
- // 过滤class属性
- if (!key.equals("class")) {
- // 得到property对应的getter方法
- Method getter = property.getReadMethod();
- Object value = getter.invoke(obj);
- map.put(key, value);
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- return map;
- }
3.JavaBean与Json相互转换(使用JSONObject实现,需要导入json-lib.jar)
- //json字符串转成JavaBean
- //测试已通过
- @SuppressWarnings("unchecked")
- public static <T> T json2Bean(String jsonString, Class<T> beanCalss) {
- JSONObject jsonObject = JSONObject.fromObject(jsonString);
- T bean = (T) JSONObject.toBean(jsonObject, beanCalss);
- return bean;
- }
- //JavaBean转成json字符串
- //测试已通过
- public static String beanToJson(Object bean) {
- JSONObject json = JSONObject.fromObject(bean);
- return json.toString();
- }
4.JavaBean与DBObject相互转换(DBObject是MongoDB在Java驱动是使用的类)
- //DBObject转换成JavaBean
- //测试已通过
- 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;
- }
- @SuppressWarnings("unchecked")
- 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);
- } else if (param instanceof List) {
- List<Object> list = (List<Object>) param;
- dbObject.put(varName, list);
- } else if (param instanceof Map) {
- Map<Object, Object> map = (Map<Object, Object>) param;
- dbObject.put(varName, map);
- }
- // 恢复访问控制权限
- field.setAccessible(accessFlag);
- }
- return dbObject;
- }
5.测试代码
- package test;
- import java.lang.reflect.InvocationTargetException;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.junit.Before;
- import org.junit.Test;
- import com.mongodb.BasicDBObject;
- import com.mongodb.DBObject;
- import com.zmy.bean.Person;
- import com.zmy.bean.Score;
- import com.zmy.util.BeanUtil;
- import com.zmy.util.DBObjectUtil;
- public class ConvertTest {
- private Person person = null;
- private Map<String, Object> map = null;
- @Before
- public void initBean(){
- person = new Person();
- Score score1 = new Score();
- Score score2 = new Score();
- person.setAddress("大连");
- person.setAge(21);
- person.setJob("coder");
- person.setName("zmy");
- List<String> schools = new ArrayList<String>();
- List<Score> scores = new ArrayList<Score>();
- schools.add("DLUT");
- score1.setCource_name("course1");
- score1.setCource_score(85);
- score2.setCource_name("course2");
- score2.setCource_score(80);
- scores.add(score1);
- scores.add(score2);
- person.setSchool(schools);
- person.setScore(scores);
- }
- @Before
- public void initMap(){
- map = new HashMap<String, Object>();
- map.put("address", "大连");
- map.put("name", "zmy");
- map.put("job", "coder");
- map.put("age", 21);
- List<String> schools = new ArrayList<String>();
- schools.add("DLUT");
- schools.add("HUK");
- map.put("school", schools);
- List<Score> scores = new ArrayList<Score>();
- Score score1 = new Score();
- Score score2 = new Score();
- score1.setCource_name("course1");
- score1.setCource_score(85);
- score2.setCource_name("course2");
- score2.setCource_score(80);
- scores.add(score1);
- scores.add(score2);
- map.put("score", scores);
- }
- @Test
- public void testBean2Map(){
- Map<String, Object> map = BeanUtil.transBean2Map(person);
- System.out.println(map.toString());
- }
- @Test
- public void testMap2Bean(){
- Person person = (Person) BeanUtil.transMap2Bean(map, new Person());
- System.out.println(person.getName());
- }
- @Test
- public void testBean2Json(){
- String json = BeanUtil.beanToJson(person);
- System.out.println(json);
- Person person2 = BeanUtil.json2Bean(json, Person.class);
- System.out.println(person2.getName());
- }
- @Test
- public void testDBObject2Bean(){
- DBObject dbObject = new BasicDBObject(map);
- try {
- Person p = BeanUtil.dbObject2Bean(dbObject, new Person());
- System.out.println(p.getName());
- } catch (IllegalAccessException | InvocationTargetException
- | NoSuchMethodException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- System.out.println("转换error!!!");
- }
- }
- @Test
- public void testBean2DBObject(){
- try {
- DBObject dbObject = DBObjectUtil.bean2DBObject(person);
- System.out.println(dbObject.get("score"));
- System.out.println(person.getScore());
- } catch (IllegalArgumentException | IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- System.out.println("转换error!!!");
- }
- }
- }
相关推荐
在Java中操作MongoDB数据库时,常常需要将Java对象(对象Bean)与MongoDB的数据表示对象DBObject进行相互转换。这主要是因为MongoDB的驱动程序使用DBObject来存储和检索数据,而我们通常会用面向对象的方式来定义和...
从数据库中查询对象时,可以通过设置 `DBObject` 类型来转换查询结果: ```java collection.setObjectClass(Tweet.class); Tweet myTweet = (Tweet) collection.findOne(); ``` #### 三、创建连接 建立与 MongoDB...
可以使用 `JSON.parse()` 解析 JSON 字符串为 `DBObject`,反之使用 `DBObject.toString()` 输出 JSON 格式。 通过以上步骤,初学者可以了解并开始在 Java 环境下操作 MongoDB。实际应用中,还应该考虑连接池、事务...
在Java中操作几何体主要涉及Oracle Spatial Java API的使用,特别是`JGeometry`类,它提供了与数据库中的SDO_GEOMETRY类型对象交互的能力。Oracle Spatial API包含在`$ORACLE_HOME/md/jlib`目录下的`sdoapi.jar`和`...
在 Java 中,我们可以通过 `Mongo` 类来建立与 MongoDB 的连接。例如: ```java Mongo mongo = new Mongo(); // 默认连接 localhost:27017 Mongo mongo = new Mongo("localhost"); // 指定主机名 Mongo mongo = new ...
创建一个`Map`对象,将数据放入其中,然后将其转换为`DBObject`: ```java Map, String> data = new HashMap(); data.put("key", "value"); DBObject dbObject = new BasicDBObject(data); DBCollection dbcol = ...
在本文中,我们将深入探讨如何使用Java语言操作MongoDB数据库。MongoDB是一个流行的NoSQL数据库,以其灵活性、高性能和可扩展性而闻名。Java作为广泛使用的编程语言,提供了丰富的API来与MongoDB进行交互。以下是...
MongoDB Java API是Java开发者与MongoDB数据库交互的接口,提供了丰富的功能,使得在Java应用程序中存储、查询和处理MongoDB的数据变得简单。本篇将详细介绍MongoDB Java Driver的一些核心概念和常用操作。 首先,...
本文档主要介绍如何在Java环境中使用MongoDB进行数据库操作的基本方法。通过一个简单的Java程序,我们将会了解到如何连接MongoDB服务器、创建数据库、插入文档、查询文档以及删除文档等基本功能。 #### 二、环境...
dbObject : window , // database object eg: window.openDatabase timeout : 5000 // process waiting time } ) 名称 描述 ID 数据库名称 数据库对象 数据库对象 超时 sql进程超时 版本 数据库版本(默认:1.0...
### MongoDB Java 使用文档知识点概述 #### 一、MongoDB 的安装与配置 ##### Windows 下的安装与配置 1. **下载 MongoDB**: - 访问 MongoDB 官方网站:[http://www.mongodb.org/](http://www.mongodb.org/)。 ...
7. **JSON.parse**:在将JSON字符串转换为`DBObject`时,使用了`JSON.parse(jsonSql)`方法。这是MongoDB驱动程序的一部分,将JSON字符串解析为可以执行的MongoDB命令对象。 8. **DBObject**:`DBObject`是MongoDB...
在Java开发环境中,为了与MongoDB进行交互,我们通常会使用官方提供的Java驱动程序。本篇将深入探讨“MongoDB驱动Java版”,即mongodb-java-driver,版本为2.11.2。 MongoDB Java驱动程序是Java开发者与MongoDB...
JAVA 中使用 MongoDB 的聚合查询方式有多种,包括使用 BasicDBObject 和 DBObject 两种方式。通过本文的介绍,读者可以了解聚合查询的基础知识和实现方式,从而更好地使用 MongoDB 实现复杂的数据分析和处理。
在本篇文章中,我们将深入探讨如何使用Java对MongoDB进行基本的操作,包括连接数据库、插入数据、查询数据、更新数据以及删除数据等核心功能。 #### 二、连接MongoDB数据库 在Java中,通常使用`com.mongodb.Mongo`...
### 基于Java的MongoDB开发环境搭建详解 #### 一、开发环境配置 **系统环境:** Windows **集成开发环境(IDE):** IntelliJ IDEA **数据库:** MongoDB 为了确保项目的顺利进行,我们需要首先安装并配置好这些...
在 Java 开发环境中,我们通常使用 MongoDB Java 驱动程序来与 MongoDB 数据库进行交互。本文将深入探讨如何配置 Java 开发环境以连接到 MongoDB 数据库。 首先,确保已安装 Java 运行时环境 (JRE) 和 Java 开发...
本篇文章将深入探讨如何使用 Java SDK 来与 MongoDB 进行交互,包括基本的增、删、改、查操作。 首先,要进行 Java 和 MongoDB 的交互,你需要下载 MongoDB 的 Java 驱动程序,这可以从 MongoDB 官方网站的下载页面...
Java操作MongoDB查询的实例详解 MongoDB是一个流行的NoSQL数据库系统,由C++编写,设计为分布式文件存储,特别适合处理大规模Web应用程序的数据存储...理解这些基本概念和操作方式是有效使用MongoDB与Java集成的基础。