ponh 发表于 2015-11-10 13:57:16

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

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(&quot;name&quot;, &quot;小李&quot;);
doc1.put(&quot;age&quot;, 30);
doc1.put(&quot;address&quot;, &quot;江苏南京&quot;);
dbList.add(doc1);
BasicDBObject doc2 = new BasicDBObject();
doc2.put(&quot;name&quot;, &quot;小张&quot;);
doc2.put(&quot;age&quot;, 25);
doc2.put(&quot;address&quot;, &quot;江苏苏州&quot;);
dbList.add(doc2);
dbCol.insert(dbList);
System.out.println(&quot;向数据集中插入数据完成!&quot;);
System.out.println(&quot;------------------------------&quot;);
}
/**
* 数据读取
*/
private static void readColData(){
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
DBCursor ret = dbCol.find();
System.out.println(&quot;从数据集中读取数据:&quot;);
while(ret.hasNext()){
BasicDBObject bdbObj = (BasicDBObject) ret.next();
if(bdbObj != null){
System.out.println(&quot;name:&quot;+bdbObj.getString(&quot;name&quot;));
System.out.println(&quot;age:&quot;+bdbObj.getInt(&quot;age&quot;));
System.out.println(&quot;address:&quot;+bdbObj.getString(&quot;address&quot;));
}
}
}
/**
* 数据更新
* 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(&quot;------------------------------&quot;);
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
DBCursor ret = dbCol.find();
BasicDBObject doc = new BasicDBObject();
BasicDBObject res = new BasicDBObject();
res.put(&quot;age&quot;, 40);
System.out.println(&quot;将数据集中的所有文档的age修改成40!&quot;);
doc.put(&quot;$set&quot;, res);
dbCol.update(new BasicDBObject(),doc,false,true);
System.out.println(&quot;更新数据完成!&quot;);
System.out.println(&quot;------------------------------&quot;);
}
/**
* 数据删除
*/
private static void deleteColData(){
System.out.println(&quot;------------------------------&quot;);
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
System.out.println(&quot;删除【小李】!&quot;);
BasicDBObject doc = new BasicDBObject();
doc.put(&quot;name&quot;, &quot;小李&quot;);
dbCol.remove(doc);
System.out.println(&quot;------------------------------&quot;);
}
/**
* 关闭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(&quot;127.0.0.1&quot;, 27017);
//根据mongodb数据库的名称获取mongodb对象
db = m.getDB(&quot;sdap&quot;);
//校验用户密码是否正确
if (!db.authenticate(&quot;sdap&quot;, &quot;sdap123&quot;.toCharArray())){
System.out.println(&quot;连接MongoDB数据库,校验失败!&quot;);
}else{
System.out.println(&quot;连接MongoDB数据库,校验成功!&quot;);
}
} 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:江苏苏州


  
  

版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: java 操作mongodb插入、读取、修改以及删除基础