本文目錄一覽:
java程序中,如何把json對象轉換成mongodb對象,然後存到mongodb數據庫中
你使用的mongodb的Java驅動里有相應的存儲對象的方法,存儲的對象應該是Java對象,所以你需要把json對象轉換成Java對象然後存儲到mongodb中就可以了。
Java如何讀取json文件並將其存入Mongodb數據庫中
因為Java操作mongodb需要使用相關的ORM驅動,所以你最好是讀取json數據後轉成Java對象然後調用驅動方法存入到數據庫中即可。
如何用Java操作MongoDB
HelloWorld程序
學習任何程序的第一步,都是編寫HelloWorld程序,我們也不例外,看下如何通過Java編寫一個HelloWorld的程序。
首先,要通過Java操作Mongodb,必須先下載Mongodb的Java驅動程序,可以在這裡下載。
新建立一個Java工程,將下載的驅動程序放在庫文件路徑下,程序代碼如下:
package com.mkyong.core;
import java.net.UnknownHostException;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
/**
* Java + MongoDB Hello world Example
*
*/
public class App {
public static void main(String[] args) {
try {
//實例化Mongo對象,連接27017端口
Mongo mongo = new Mongo(“localhost”, 27017);
//連接名為yourdb的數據庫,假如數據庫不存在的話,mongodb會自動建立
DB db = mongo.getDB(“yourdb”);
// Get collection from MongoDB, database named “yourDB”
//從Mongodb中獲得名為yourColleection的數據集合,如果該數據集合不存在,Mongodb會為其新建立
DBCollection collection = db.getCollection(“yourCollection”);
// 使用BasicDBObject對象創建一個mongodb的document,並給予賦值。
BasicDBObject document = new BasicDBObject();
document.put(“id”, 1001);
document.put(“msg”, “hello world mongoDB in Java”);
//將新建立的document保存到collection中去
collection.insert(document);
// 創建要查詢的document
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put(“id”, 1001);
// 使用collection的find方法查找document
DBCursor cursor = collection.find(searchQuery);
//循環輸出結果
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
System.out.println(“Done”);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
}
最後,輸出的結果為:
{ “_id” : { “$oid” : “4dbe5596dceace565d229dc3”} ,
“id” : 1001 , “msg” : “hello world mongoDB in Java”}
Done
在上面的例子中,演示了使用Java對Mongodb操作的重要方法和步驟,首先通過創建Mongodb對象,傳入構造函數的參數是Mongodb的數據庫所在地址和端口,然後使用
getDB方法獲得要連接的數據庫名,使用getCollection獲得數據集合的名,然後通過新建立BasicDBObject對象去建立document,最後通過collection的insert方法,將建立的document保存到數據庫中去。而collection的find方法,則是用來在數據庫中查找document。
從Mongodb中獲得collection數據集
在Mongodb中,可以通過如下方法獲得數據庫中的collection:
DBCollection collection = db.getCollection(“yourCollection”);
如果你不知道collection的名稱,可以使用db.getCollectionNames()獲得集合,然後再遍歷,如下:
DB db = mongo.getDB(“yourdb”);
Set collections = db.getCollectionNames();
for(String collectionName : collections){
System.out.println(collectionName);
}
完成的一個例子如下:
package com.mkyong.core;
import java.net.UnknownHostException;
import java.util.Set;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
/**
* Java : Get collection from MongoDB
*
*/
public class GetCollectionApp {
public static void main(String[] args) {
try {
Mongo mongo = new Mongo(“localhost”, 27017);
DB db = mongo.getDB(“yourdb”);
SetString collections = db.getCollectionNames();
for (String collectionName : collections) {
System.out.println(collectionName);
}
DBCollection collection = db.getCollection(“yourCollection”);
System.out.println(collection.toString());
System.out.println(“Done”);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
}
Mongodb中如何插入數據
下面,講解下如何使用4種方式,將JSON數據插入到Mongodb中去。首先我們準備JSON
格式的數據,如下:
{
“database” : “mkyongDB”,
“table” : “hosting”,
“detail” :
{
records : 99,
index : “vps_index1”,
active : “true”
}
}
}
我們希望用不同的方式,通過JAVA代碼向Mongodb插入以上格式的JSON數據
第一種方法,是使用BasicDBObject,方法如下代碼所示:
BasicDBObject document = new BasicDBObject();
document.put(“database”, “mkyongDB”);
document.put(“table”, “hosting”);
BasicDBObject documentDetail = new BasicDBObject();
documentDetail.put(“records”, “99”);
documentDetail.put(“index”, “vps_index1”);
documentDetail.put(“active”, “true”);
document.put(“detail”, documentDetail);
collection.insert(document);
第二種方法是使用BasicDBObjectBuilder對象,如下代碼所示:
BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilder.start()
.add(“database”, “mkyongDB”)
.add(“table”, “hosting”);
BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilder.start()
.add(“records”, “99”)
.add(“index”, “vps_index1”)
.add(“active”, “true”);
documentBuilder.add(“detail”, documentBuilderDetail.get());
collection.insert(documentBuilder.get());
第三種方法是使用Map對象,代碼如下:
Map documentMap =new HashMap();
documentMap.put(“database”, “mkyongDB”);
documentMap.put(“table”, “hosting”);
Map documentMapDetail =new HashMap();
documentMapDetail.put(“records”, “99”);
documentMapDetail.put(“index”, “vps_index1”);
documentMapDetail.put(“active”, “true”);
documentMap.put(“detail”, documentMapDetail);
collection.insert(new BasicDBObject(documentMap));
第四種方法,也就是最簡單的,即直接插入JSON格式數據
String json =”{‘database’ : ‘mkyongDB’,’table’ : ‘hosting’,”+
“‘detail’ : {‘records’ : 99, ‘index’ : ‘vps_index1’, ‘active’ : ‘true’}}}”;
DBObject dbObject =(DBObject)JSON.parse(json);
collection.insert(dbObject);
這裡使用了JSON的parse方法,將解析後的JSON字符串轉變為DBObject對象後再直接插入到collection中去。
完整的代碼如下所示:
packagecom.mkyong.core;
importjava.net.UnknownHostException;
importjava.util.HashMap;
importjava.util.Map;
importcom.mongodb.BasicDBObject;
importcom.mongodb.BasicDBObjectBuilder;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.DBCursor;
importcom.mongodb.DBObject;
importcom.mongodb.Mongo;
importcom.mongodb.MongoException;
importcom.mongodb.util.JSON;
/**
* Java MongoDB : Insert a Document
*
*/
publicclass InsertDocumentApp {
publicstaticvoid main(String[] args){
try{
Mongo mongo =new Mongo(“localhost”, 27017);
DB db = mongo.getDB(“yourdb”);
// get a single collection
DBCollection collection = db.getCollection(“dummyColl”);
// BasicDBObject example
System.out.println(“BasicDBObject example…”);
BasicDBObject document =new BasicDBObject();
document.put(“database”, “mkyongDB”);
document.put(“table”, “hosting”);
BasicDBObject documentDetail =new BasicDBObject();
documentDetail.put(“records”, “99”);
documentDetail.put(“index”, “vps_index1”);
documentDetail.put(“active”, “true”);
document.put(“detail”, documentDetail);
collection.insert(document);
DBCursor cursorDoc = collection.find();
while(cursorDoc.hasNext()){
System.out.println(cursorDoc.next());
}
collection.remove(new BasicDBObject());
// BasicDBObjectBuilder example
System.out.println(“BasicDBObjectBuilder example…”);
BasicDBObjectBuilder documentBuilder = BasicDBObjectBuilder.start()
.add(“database”, “mkyongDB”)
.add(“table”, “hosting”);
BasicDBObjectBuilder documentBuilderDetail = BasicDBObjectBuilder.start()
.add(“records”, “99”)
.add(“index”, “vps_index1”)
.add(“active”, “true”);
documentBuilder.add(“detail”, documentBuilderDetail.get());
collection.insert(documentBuilder.get());
DBCursor cursorDocBuilder = collection.find();
while(cursorDocBuilder.hasNext()){
System.out.println(cursorDocBuilder.next());
}
collection.remove(new BasicDBObject());
// Map example
System.out.println(“Map example…”);
Map documentMap =new HashMap();
documentMap.put(“database”, “mkyongDB”);
documentMap.put(“table”, “hosting”);
Map documentMapDetail =new HashMap();
documentMapDetail.put(“records”, “99”);
documentMapDetail.put(“index”, “vps_index1”);
documentMapDetail.put(“active”, “true”);
documentMap.put(“detail”, documentMapDetail);
collection.insert(new BasicDBObject(documentMap));
DBCursor cursorDocMap = collection.find();
while(cursorDocMap.hasNext()){
System.out.println(cursorDocMap.next());
}
collection.remove(new BasicDBObject());
// JSON parse example
System.out.println(“JSON parse example…”);
String json =”{‘database’ : ‘mkyongDB’,’table’ : ‘hosting’,”+
“‘detail’ : {‘records’ : 99, ‘index’ : ‘vps_index1’, ‘active’ : ‘true’}}}”;
DBObject dbObject =(DBObject)JSON.parse(json);
collection.insert(dbObject);
DBCursor cursorDocJSON = collection.find();
while(cursorDocJSON.hasNext()){
System.out.println(cursorDocJSON.next());
}
collection.remove(new BasicDBObject());
}catch(UnknownHostException e){
e.printStackTrace();
}catch(MongoException e){
e.printStackTrace();
}
}
}
原創文章,作者:JH1JE,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130189.html