java 操作mongodb插入、读取、修改以及删除基础

10 篇文章 1 订阅
package mongodb;

import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;

/**
 * java
 * mongodb的数据插入、读取、更新、删除
 */
public class MongodbCRUD {
	private static Mongo m = null;
	private static DB db = null;
	
	//数据集合名称
	private static final String COLLECTION_NAME = "mcpang";

	/*
	 * 测试java处理mongodb的增、删、改、查操作
	 */
	public static void main(String[] args) {
		//获取数据库连接
		startMongoDBConn();
		//保存数据
		createColData();
		//读取数据
		readColData();
		//更新数据
		updateColData();
		//读取数据
		readColData();
		//删除数据
		deleteColData();
		//读取数据
		readColData();
		//删除数据集
		db.getCollection(COLLECTION_NAME).drop();
		//关闭数据库连接
		stopMondoDBConn();
		
		
	}
	
	/**
	 * 数据插入
	 * *测试数据:
	 * 【name:小李、age:30、address:江苏南京】
	 * 【name:小张、age:25、address:江苏苏州】
	 * @return 
	 */
	private static void createColData(){
		DBCollection dbCol = db.getCollection(COLLECTION_NAME);
		System.out.println("向数据集中插入数据开始:");
		List<DBObject> dbList = new ArrayList<DBObject>();
		BasicDBObject doc1 = new BasicDBObject();
		doc1.put("name", "小李");
		doc1.put("age", 30);
		doc1.put("address", "江苏南京");
		dbList.add(doc1);
		
		BasicDBObject doc2 = new BasicDBObject();
		doc2.put("name", "小张");
		doc2.put("age", 25);
		doc2.put("address", "江苏苏州");
		dbList.add(doc2);
		
		dbCol.insert(dbList);
		System.out.println("向数据集中插入数据完成!");
		System.out.println("------------------------------");
	}
	
	/**
	 * 数据读取
	 */
	private static void readColData(){
		DBCollection dbCol = db.getCollection(COLLECTION_NAME);
		DBCursor ret = dbCol.find();
		System.out.println("从数据集中读取数据:");
		while(ret.hasNext()){
			BasicDBObject bdbObj = (BasicDBObject) ret.next();
			if(bdbObj != null){
				System.out.println("name:"+bdbObj.getString("name"));
				System.out.println("age:"+bdbObj.getInt("age"));
				System.out.println("address:"+bdbObj.getString("address"));
			}
		}
	}
	
	/**
	 * 数据更新
	 * update(q, o, upsert, multi)
	 * update(q, o, upsert, multi, concern)
	 * update(arg0, arg1, arg2, arg3, arg4, arg5)
	 * updateMulti(q, o)
	 */
	private static void updateColData(){
		System.out.println("------------------------------");
		DBCollection dbCol = db.getCollection(COLLECTION_NAME);
		DBCursor ret = dbCol.find();
		BasicDBObject doc = new BasicDBObject();
		BasicDBObject res = new BasicDBObject();
		res.put("age", 40);
		System.out.println("将数据集中的所有文档的age修改成40!");
		doc.put("$set", res);
		dbCol.update(new BasicDBObject(),doc,false,true);
		System.out.println("更新数据完成!");
		System.out.println("------------------------------");
	}
	
	/**
	 * 数据删除
	 */
	private static void deleteColData(){
		System.out.println("------------------------------");
		DBCollection dbCol = db.getCollection(COLLECTION_NAME);
		System.out.println("删除【小李】!");
		BasicDBObject doc = new BasicDBObject();
		doc.put("name", "小李");
		dbCol.remove(doc);
		System.out.println("------------------------------");
	}
	
	/**
	 * 关闭mongodb数据库连接
	 */
	private static void stopMondoDBConn(){
		if (null != m) {
			if (null != db) {
				// 结束Mongo数据库的事务请求
				try {
					db.requestDone();
				} catch(Exception e) {
					e.printStackTrace();
				}
			}
			try
			{
				m.close();
			} catch(Exception e) {
				e.printStackTrace();
			}
			m = null;
			db = null;
		}
	}
	
	/**
	 * 获取mongodb数据库连接
	 */
	private static void startMongoDBConn(){
		try {
			//Mongo(p1, p2):p1=>IP地址     p2=>端口
			m = new Mongo("127.0.0.1", 27017);
			//根据mongodb数据库的名称获取mongodb对象
			db = m.getDB("sdap");
			//校验用户密码是否正确
			if (!db.authenticate("sdap", "sdap123".toCharArray())){
				System.out.println("连接MongoDB数据库,校验失败!");
			}else{
				System.out.println("连接MongoDB数据库,校验成功!");
			}
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (MongoException e) {
			e.printStackTrace();
		}
	}

}


 

执行结果:

连接MongoDB数据库,校验成功!
向数据集中插入数据开始:
向数据集中插入数据完成!
------------------------------
从数据集中读取数据:
name:小李
age:30
address:江苏南京
name:小张
age:25
address:江苏苏州
------------------------------
将数据集中的所有文档的age修改成40!
更新数据完成!
------------------------------
从数据集中读取数据:
name:小李
age:40
address:江苏南京
name:小张
age:40
address:江苏苏州
------------------------------
删除【小李】!
------------------------------
从数据集中读取数据:
name:小张
age:40
address:江苏苏州

 

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Java可以使用MongoDB的官方Java驱动程序来连接和操作MongoDB数据库。以下是使用Java驱动程序连接MongoDB数据库的一些步骤: 1. 下载MongoDBJava驱动程序,例如:mongo-java-driver-3.12.7.jar。 2. 在Java项目中引入MongoDBJava驱动程序,可以使用Maven或手动添加JAR文件到项目中。 3. 在Java代码中使用以下代码来连接MongoDB数据库: ``` MongoClient mongoClient = new MongoClient("localhost", 27017); MongoDatabase database = mongoClient.getDatabase("mydb"); ``` 其中,`localhost`表示MongoDB服务器的地址,`27017`表示MongoDB服务器的端口号,`mydb`表示要连接的数据库名称。 4. 连接成功后,可以使用以下代码来获取集合(类似于关系型数据库中的表): ``` MongoCollection<Document> collection = database.getCollection("mycollection"); ``` 其中,`mycollection`表示要操作的集合名称。 5. 可以使用以下代码来插入文档(类似于关系型数据库中的行): ``` Document document = new Document("name", "John") .append("age", 30) .append("city", "New York"); collection.insertOne(document); ``` 6. 可以使用以下代码来查询文档: ``` Document query = new Document("name", "John"); FindIterable<Document> result = collection.find(query); for (Document document : result) { System.out.println(document.toJson()); } ``` 其中,`query`表示查询条件,`result`表示查询结果的迭代器,`document.toJson()`可以将查询结果转换为JSON格式输出。 以上是使用Java驱动程序连接MongoDB数据库的基本步骤,可以根据具体需求进行更多的操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值