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包 地址
- 直接下载jar包
https://download.youkuaiyun.com/download/anlu_site/12491900 - 也可去以下网址下载或获取maven地址
https://www.mvnjar.com/search/mongodb-driver.html

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

被折叠的 条评论
为什么被折叠?



