package mongoDB;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
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的數(shù)據(jù)插入、讀取、更新、刪除
*/
public class test{
private static Mongo m = null;
private static DB db = null;
//數(shù)據(jù)集合名稱
private static final String COLLECTION_NAME = "mcpang";
/*
* 測試java處理mongodb的增、刪、改、查操作
*/
public static void main(String[] args) {
//獲取數(shù)據(jù)庫連接
startMongoDBConn();
//保存數(shù)據(jù)
createColData();
//讀取數(shù)據(jù)
readColData();
//更新數(shù)據(jù)
updateColData();
//讀取數(shù)據(jù)
readColData();
//刪除數(shù)據(jù)
deleteColData();
//讀取數(shù)據(jù)
readColData();
//刪除數(shù)據(jù)集
db.getCollection(COLLECTION_NAME).drop();
//關(guān)閉數(shù)據(jù)庫連接
stopMondoDBConn();
}
/**
* 數(shù)據(jù)插入
* 測試數(shù)據(jù):
* 【name:小李、age:30、address:北京】
* 【name:小張、age:25、address:天津】
* @return
*/
private static void createColData(){
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
System.out.println("向數(shù)據(jù)集中插入數(shù)據(jù)開始:");
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("向數(shù)據(jù)集中插入數(shù)據(jù)完成!");
System.out.println("------------------------------");
}
/**
* 數(shù)據(jù)讀取
*/
private static void readColData(){
DBCollection dbCol = db.getCollection(COLLECTION_NAME);
DBCursor ret = dbCol.find();
System.out.println("從數(shù)據(jù)集中讀取數(shù)據(jù):");
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"));
}
}
}
/**
* 數(shù)據(jù)更新
* 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("將數(shù)據(jù)集中的所有文檔的age修改成40!");
doc.put("$set", res);
dbCol.update(new BasicDBObject(),doc,false,true);
System.out.println("更新數(shù)據(jù)完成!");
System.out.println("------------------------------");
}
/**
* 數(shù)據(jù)刪除
*/
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("------------------------------");
}
/**
* 關(guān)閉mongodb數(shù)據(jù)庫連接
*/
private static void stopMondoDBConn(){
if (null != m) {
if (null != db) {
// 結(jié)束Mongo數(shù)據(jù)庫的事務(wù)請求
try {
db.requestDone();
} catch(Exception e) {
e.printStackTrace();
}
}
try
{
m.close();
} catch(Exception e) {
e.printStackTrace();
}
m = null;
db = null;
}
}
/**
* 獲取mongodb數(shù)據(jù)庫連接
*/
private static void startMongoDBConn(){
try {
//Mongo(p1, p2):p1=>IP地址 p2=>端口
m = new Mongo("127.0.0.1", 27017);
//根據(jù)mongodb數(shù)據(jù)庫的名稱獲取mongodb對象
db = m.getDB("yyl");
//校驗用戶密碼是否正確
if (!db.authenticate("yyl", "yyl123".toCharArray())){
System.out.println("連接MongoDB數(shù)據(jù)庫,校驗失敗!");
}else{
System.out.println("連接MongoDB數(shù)據(jù)庫,校驗成功!");
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
}
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

