Ⅰ 有沒有大神 java連接mongodb遇到了問題
新版本的mongodb的驅動包是依賴bson.jar和mongodb_driver_core.jar的 官網上有提示:
Note: mongodb-driver requires the following dependencies: bson and mongodb-driver-core
去看一下 ,然後對應的地方有兩個包的下載,導進你的方法就ok了
下載地址:
MongoDB-driver-3.0.1.jar
mongodb-driver-core-3.0.1.jar
bson-3.0.1.jar
https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver/3.0.1/
https://oss.sonatype.org/content/repositories/releases/org/mongodb/mongodb-driver-core/3.0.1/
https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/3.0.1/
Ⅱ 如何通過java操作 mongodb的 存儲過程
第一步:安裝MongoDB
無需太多的繁雜步驟,你只要在MongoDB官方網站查看安裝說明,根據自己的操作系統進行選擇適應的版本即可。
第二步:啟動MongoDB伺服器
這一步也很簡單。運行mongod.exe文件里的bin文件夾(我使用的是Windows OS系統),並啟動MongoDB伺服器。
在默認的情況下伺服器將啟動埠27017,你需要在安裝過程中創建將數據存儲在/data/db目錄里。
第三步:啟動MongoDB shell指令
你可以通過運行mongo.exe文件來啟動MongoBD shell.
第四步:利用MongoDB創建資料庫
利用MongoDB在MongoDB shell中輸入以下內容建立一個名為「company」的資料庫。
1.use company 記住,除非你在MangoDB里保存了一些東西,否則它不會自動為你保存。
使用下面的命令幫你查看可用的資料庫,它會顯示「company」尚未被創建。
1.show dbs;
第五步:在MongoDB中保存數據
使用下面的命令來保存employee 數據代表一個collection,將其命名為employees.
1.employee = {name : 「A」, no : 1}
2.db.employees.save(employee)
通過使用下面的命令來查看collection里的數據。
1.db.users.find();
如何使用Java操作MongoDB?
下面是是一段簡單的Java代碼,你可以在這里獲得mongo-java驅動。很簡單,只需要使用下面的代碼,重復上面的操作即可。
1.package com.eviac.blog.mongo;
2.
3.import java.net.UnknownHostException;
4.
5.import com.mongodb.BasicDBObject;
6.import com.mongodb.DB;
7.import com.mongodb.DBCollection;
8.import com.mongodb.DBCursor;
9.import com.mongodb.Mongo;
10.import com.mongodb.MongoException;
11.
12.public class MongoDBClient {
13.
14. public static void main(String[] args) {
15.
16. try {
17.
18. Mongo mongo = new Mongo(「localhost」, 27017);
19.
20. DB db = mongo.getDB(「company」);
21.
22. DBCollection collection = db.getCollection(「employees」);
23.
24. BasicDBObject employee = new BasicDBObject();
25. employee.put(「name」, 「Hannah」);
26. employee.put(「no」, 2);
27.
28. collection.insert(employee);
29.
30. BasicDBObject searchEmployee = new BasicDBObject();
31. searchEmployee.put(「no」, 2);
32.
33. DBCursor cursor = collection.find(searchEmployee);
34.
35. while (cursor.hasNext()) {
36. System.out.println(cursor.next());
37. }
38.
39. System.out.println(「The Search Query has Executed!」);
40.
41. } catch (UnknownHostException e) {
42. e.printStackTrace();
43. } catch (MongoException e) {
44. e.printStackTrace();
45. }
46.
47. }
48.
49.}
結果如下:
1.{ 「_id」 : { 「$oid」 : 「4fec74dc907cbe9445fd2d70」} , 「name」 : 「Hannah」 , 「no」 : 2}
2.The Search Query has Executed!
小結:
隨著互聯網Web2.0網站的興起,非關系型的資料庫現在成了一個極其熱門的新領域,非關系資料庫產品的發展也非常迅速。本文淺顯的談及了如何使用Java操作MongoDB以及了解MongoDB如何進行日常的資料庫操作的問題。
Ⅲ 如何用Java操作MongoDB
HelloWorld程序
學習任何程序的第一步,都是編寫HelloWorld程序,我們也不例外,看下如何通過Java編寫一個HelloWorld的程序。
首先,要通過Java操作Mongodb,必須先下載Mongodb的Java驅動程序,可以在這里下載。
新建立一個Java工程,將下載的驅動程序放在庫文件路徑下,程序代碼如下:
packagecom.mkyong.core;
importjava.net.UnknownHostException;
importcom.mongodb.BasicDBObject;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.DBCursor;
importcom.mongodb.Mongo;
importcom.mongodb.MongoException;
/**
*Java+MongoDBHelloworldExample
*
*/
publicclassApp{
publicstaticvoidmain(String[]args){
try{
//實例化Mongo對象,連接27017埠
Mongomongo=newMongo("localhost",27017);
//連接名為yourdb的資料庫,假如資料庫不存在的話,mongodb會自動建立
DBdb=mongo.getDB("yourdb");
//GetcollectionfromMongoDB,databasenamed"yourDB"
//從Mongodb中獲得名為yourColleection的數據集合,如果該數據集合不存在,Mongodb會為其新建立
DBCollectioncollection=db.getCollection("yourCollection");
//使用BasicDBObject對象創建一個mongodb的document,並給予賦值。
BasicDBObjectdocument=newBasicDBObject();
document.put("id",1001);
document.put("msg","helloworldmongoDBinJava");
//將新建立的document保存到collection中去
collection.insert(document);
//創建要查詢的document
BasicDBObjectsearchQuery=newBasicDBObject();
searchQuery.put("id",1001);
//使用collection的find方法查找document
DBCursorcursor=collection.find(searchQuery);
//循環輸出結果
while(cursor.hasNext()){
System.out.println(cursor.next());
}
System.out.println("Done");
}catch(UnknownHostExceptione){
e.printStackTrace();
}catch(MongoExceptione){
e.printStackTrace();
}
}
}
最後,輸出的結果為:
{"_id":{"$oid":"4dbe5596dceace565d229dc3"},
"id":1001,"msg":"helloworldmongoDBinJava"}
Done
在上面的例子中,演示了使用Java對Mongodb操作的重要方法和步驟,首先通過創建Mongodb對象,傳入構造函數的參數是Mongodb的資料庫所在地址和埠,然後使用
getDB方法獲得要連接的資料庫名,使用getCollection獲得數據集合的名,然後通過新建立BasicDBObject對象去建立document,最後通過collection的insert方法,將建立的document保存到資料庫中去。而collection的find方法,則是用來在資料庫中查找document。
從Mongodb中獲得collection數據集
在Mongodb中,可以通過如下方法獲得資料庫中的collection:
DBCollectioncollection=db.getCollection("yourCollection");
如果你不知道collection的名稱,可以使用db.getCollectionNames()獲得集合,然後再遍歷,如下:
DBdb=mongo.getDB("yourdb");
Setcollections=db.getCollectionNames();
for(StringcollectionName:collections){
System.out.println(collectionName);
}
完成的一個例子如下:
packagecom.mkyong.core;
importjava.net.UnknownHostException;
importjava.util.Set;
importcom.mongodb.DB;
importcom.mongodb.DBCollection;
importcom.mongodb.Mongo;
importcom.mongodb.MongoException;
/**
*Java:GetcollectionfromMongoDB
*
*/
publicclassGetCollectionApp{
publicstaticvoidmain(String[]args){
try{
Mongomongo=newMongo("localhost",27017);
DBdb=mongo.getDB("yourdb");
Set<String>collections=db.getCollectionNames();
for(StringcollectionName:collections){
System.out.println(collectionName);
}
DBCollectioncollection=db.getCollection("yourCollection");
System.out.println(collection.toString());
System.out.println("Done");
}catch(UnknownHostExceptione){
e.printStackTrace();
}catch(MongoExceptione){
e.printStackTrace();
}
}
}
Mongodb中如何插入數據
下面,講解下如何使用4種方式,將jsON數據插入到Mongodb中去。首先我們准備JSON
格式的數據,如下:
{
"database":"mkyongDB",
"table":"hosting",
"detail":
{
records:99,
index:"vps_index1",
active:"true"
}
}
}
我們希望用不同的方式,通過JAVA代碼向Mongodb插入以上格式的JSON數據
第一種方法,是使用BasicDBObject,方法如下代碼所示:
BasicDBObjectdocument=newBasicDBObject();
document.put("database","mkyongDB");
document.put("table","hosting");
BasicDBObjectdocumentDetail=newBasicDBObject();
documentDetail.put("records","99");
documentDetail.put("index","vps_index1");
documentDetail.put("active","true");
document.put("detail",documentDetail);
collection.insert(document);
第二種方法是使用BasicDBObjectBuilder對象,如下代碼所示:
=BasicDBObjectBuilder.start()
.add("database","mkyongDB")
.add("table","hosting");
Detail=BasicDBObjectBuilder.start()
.add("records","99")
.add("index","vps_index1")
.add("active","true");
documentBuilder.add("detail",documentBuilderDetail.get());
collection.insert(documentBuilder.get());
第三種方法是使用Map對象,代碼如下:
MapdocumentMap=newHashMap();
documentMap.put("database","mkyongDB");
documentMap.put("table","hosting");
MapdocumentMapDetail=newHashMap();
documentMapDetail.put("records","99");
documentMapDetail.put("index","vps_index1");
documentMapDetail.put("active","true");
documentMap.put("detail",documentMapDetail);
collection.insert(newBasicDBObject(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=newMongo("localhost",27017);
DB db=mongo.getDB("yourdb");
//get a single collection
DBCollection collection=db.getCollection("mmyColl");
//BasicDBObject example
System.out.println("BasicDBObject example...");
BasicDBObject document=newBasicDBObject();
document.put("database","mkyongDB");
document.put("table","hosting");
BasicDBObject documentDetail=newBasicDBObject();
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(newBasicDBObject());
//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(newBasicDBObject());
//Map example
System.out.println("Map example...");
Map documentMap=newHashMap();
documentMap.put("database","mkyongDB");
documentMap.put("table","hosting");
Map documentMapDetail=newHashMap();
documentMapDetail.put("records","99");
documentMapDetail.put("index","vps_index1");
documentMapDetail.put("active","true");
documentMap.put("detail", documentMapDetail);
collection.insert(newBasicDBObject(documentMap));
DBCursor cursorDocMap=collection.find();
while(cursorDocMap.hasNext()){
System.out.println(cursorDocMap.next());
}
collection.remove(newBasicDBObject());
//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(newBasicDBObject());
}catch(UnknownHostException e){
e.printStackTrace();
}catch(MongoException e){
e.printStackTrace();
}
}
}
Ⅳ java鏈接mongo資料庫需要引什麼jar包
需要的jar
mongo-java-driver
maven倉庫裡面,mongodb3.0的連接驅動
<!--MongoDB資料庫連接驅動-->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.0</version>
</dependency>
2.連接過程代碼
importorg.bson.Document;
importcom.mongodb.MongoClient;
importcom.mongodb.client.MongoCollection;
importcom.mongodb.client.MongoDatabase;
/**
*2016年8月5日下午3:19:44
*
*@author3306TODO測試Mongo資料庫連接
*
*/
publicclassTestMongo{
;
privatestaticStringhost="192.168.0.149";//mongo資料庫伺服器地址,本地為127.0.0.1
privatestaticintport=20000;//mongo默認為27017埠
/**
*獲取資料庫集合
*
*@paramdatabaseName
*資料庫名稱
*@paramcollectionName
*集合名稱
*@returnMongoCollection<Document>
*/
publicstaticMongoCollection<Document>getMongoCollection(StringdatabaseName,StringcollectionName){
returngetMongoDatabase(databaseName).getCollection(collectionName);
}
/**
*獲取mongo資料庫
*
*@paramdatabaseName
*資料庫名稱
*@returnMongoDatabase
*/
(StringdatabaseName){
mongoClient=newMongoClient(host,port);
returnmongoClient.getDatabase(databaseName);
}
/**
*測試數據連接
*
*@paramargs
*/
publicstaticvoidmain(String[]args){
StringdatabaseName="mojing";//資料庫
StringcollectionName="user";//集合名稱
MongoCollection<Document>userCollection=getMongoCollection(databaseName,collectionName);
System.out.println(userCollection.count());
}
}