java 使用 MongoClient 简单例子 - v2

本文详细介绍了使用Java进行MongoDB数据库操作的方法,包括连接数据库、查询、保存数据等核心功能的实现,适用于初学者和开发者快速上手。

1,连接mongo


import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.List;

import net.sf.json.JSONArray;
import org.apache.commons.beanutils.BeanUtils;

import com.alibaba.fastjson.JSONObject;
import com.mongodb.MongoClient;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.MongoClientURI;

//mongodb 连接数据库工具类
public class MongoDBUtil {

  public static DBCollection getConnect4() throws UnknownHostException{
	  MongoClientURI connectionString = new MongoClientURI("mongodb://账户:密码@服务地址:27017/mongodb数据库名");
	  MongoClient mClient = new MongoClient(connectionString);
      DB db = mClient.getDB("mongodb数据库名");
      DBCollection collection = db.getCollection("集合名");
	  return collection;
  }
  
  /** 
   * 把实体bean对象转换成DBObject 
   * @param bean 
   * @return 
   * @throws IllegalArgumentException 
   * @throws IllegalAccessException 
   */  
  public static <T> BasicDBObject bean2DBObject(T bean) throws IllegalArgumentException,  
      IllegalAccessException {  
    if (bean == null) {  
      return null;  
    }  
    BasicDBObject 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) {
         JSONArray value = JSONArray.fromObject(param);
         dbObject.put(varName, value);  
      }else{
    	  if(param != null){
    		  Object value = JSONObject.toJSON(param);
              dbObject.put(varName, value);   
    	  }
      }
      // 恢复访问控制权限  
      field.setAccessible(accessFlag);  
    }  
    return dbObject;  
  }  
  
  /** 
   * 把DBObject转换成bean对象 
   * @param dbObject 
   * @param bean 
   * @return 
   * @throws IllegalAccessException 
   * @throws InvocationTargetException 
   * @throws NoSuchMethodException 
   */  
  public static <T> T dbObject2Bean(BasicDBObject 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;  
  }   
}

2,其他包地址

		import com.mongodb.client.MongoCollection;
		import com.mongodb.BasicDBObject;
		import com.mongodb.DBCollection;
		import com.mongodb.DBCursor;
		import com.mongodb.MongoClient;
		import com.mongodb.client.FindIterable;
		import com.mongodb.client.MongoCollection;
		import com.mongodb.client.MongoCursor;
		import com.mongodb.client.MongoDatabase;
		import com.mongodb.client.model.Filters;
		import com.mongodb.client.result.DeleteResult;
		import org.bson.Document;
		import org.bson.conversions.Bson;

3,查询


		//连接到数据库
		DBCollection mongoDatabase = MongoDBUtil.getConnect4();
		//指定查询过滤器查询
		BasicDBObject query = new BasicDBObject("字段名","值");
		DBCursor result = mongoDatabase.find(query);

4,保存

		//集合可循环加入 recordVos
		BasicDBObject document = MongoDBUtil.bean2DBObject(java类);
		ecordVos.add(document);
		//保存
		mongoDatabase.insert(recordVos);

5,jar包 地址

  1. 直接下载jar包
    https://download.youkuaiyun.com/download/anlu_site/12491900
  2. 也可去以下网址下载或获取maven地址
    https://www.mvnjar.com/search/mongodb-driver.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值