Java MongoDB 簡單示例

1. 下載 MongoDB, Java Driver

 

下載地址:http://www.mongodb.org/downloads

 

下載地址:https://github.com/mongodb/mongo-java-driver/downloads

 

2. 安裝 MongoDB

 

查看快速上手文檔: http://www.mongodb.org/display/DOCS/Quickstart

 

下載後解壓即可。 直接運行:mongod.exe 即可啓動 MongoDB,非常小巧,方便

 

3. 增加安全權限

 

由於直接啓動 MongoDB 後,沒有賬號權限限制,不太安全。 爲了安全起見,可以增加權限限制

 

執行以下命令啓動MongoDB

 

mongod --dbpath ../data/db  #"--dbpath" 爲數據文件的存儲位置
 

安全方面的設置可以查看文檔:http://www.mongodb.org/display/DOCS/Security+and+Authentication

 

use my_mongo     #默認進入test 數據庫,切換爲 my_mongo

db.addUser("prx", "prx123456")   #創建my_mongo數據庫的賬號,密碼

db.system.users.find()     #查看剛纔創建的賬號

 

重新啓動 MongoDB ,增加權限檢查

mongod --dbpath ../data/db --auth   #"--auth" 表示需要賬號驗證

 

4. Java代碼示例

 

package prx.mongo;

import java.net.UnknownHostException;
import java.util.Date;

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;

public class Test {
	static DBCollection coll = null;
	static DB db = null;
	
	static {
		Mongo m = null;
		try {
			m = new Mongo("localhost", 27017);
		} catch (UnknownHostException e) {
			e.printStackTrace();
		} catch (MongoException e) {
			e.printStackTrace();
		}
		db = m.getDB("my_mongo");
		
		if (db.authenticate("prx", "prx123456".toCharArray())) {
			System.out.println("auth success");
		}
	}
	
	public static void main(String[] args) throws Exception {
//		getMemo();
//		insertMemo();
		query();
//		delete();
	}

	/**
	 * 
	 * @param collectionName 相當於 Table 名
	 * @return
	 * @throws Exception
	 */
	public static DBCollection getDBCollection(String collectionName) throws Exception {
		if(coll == null) {
			coll = db.getCollection(collectionName);
		}
		return coll;
	}
	
	public static void insertMemo() throws Exception {
        DBCollection coll = getDBCollection("member");
        BasicDBObject doc = new BasicDBObject();
        doc.put("name", "prx");
        doc.put("city", "changsha");
        doc.put("time", new Date());
        coll.insert(doc);
    }
	
	 public static void getMemo() throws Exception {
        DBCollection coll = getDBCollection("member");
        BasicDBObject obj = (BasicDBObject) coll.findOne();
        System.out.println(obj);
    }
	 
	public static void query() throws Exception {
		DBCollection coll = getDBCollection("member");
		BasicDBObject obj = new BasicDBObject();
		obj.put("name", "prx");
		DBCursor cursor = coll.find(obj);
		while (cursor.hasNext()) {
			Date date = (Date) cursor.next().get("time");
			System.out.println(date);
		}
		cursor.close();
	}
	
	public static void delete() throws Exception {
		DBCollection coll = getDBCollection("member");
		BasicDBObject query = new BasicDBObject();
		query.put("name", "prx");
		// 找到並且刪除,並返回刪除的對象
		DBObject removeObj = coll.findAndRemove(query);
		System.out.println(removeObj);
	}
}
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章