日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 程序中使用 MongoDB教程

發布時間:2025/1/21 java 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 程序中使用 MongoDB教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境配置

Java 程序中如果要使用 MongoDB,你需要確保已經安裝了 Java 環境及 MongoDB JDBC 驅動。

本章節實例時候 Mongo 3.x 以上版本。

你可以參考本站的Java教程來安裝Java程序。現在讓我們來檢測你是否安裝了 MongoDB JDBC 驅動。

  • 首先你必須下載mongo jar包,下載地址:http://mongodb.github.io/mongo-java-driver/, 請確保下載最新版本。

  • 你需要將 mongo-java-driver-3.2.2.jar (找到合適的版本)包含在你的 classpath 中。。
  • 國內 mongodb-driver jar 下載地址:http://central.maven.org/maven2/org/mongodb/mongo-java-driver/

連接數據庫

連接數據庫,你需要指定數據庫名稱,如果指定的數據庫不存在,mongo會自動創建數據庫。

連接數據庫的Java代碼如下:

import com.mongodb.MongoClient;

import com.mongodb.client.MongoDatabase;

?

public class MongoDBJDBC{

public static void main( String args[] ){

try{

// 連接到 mongodb 服務

MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

?

// 連接到數據庫

MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");

System.out.println("Connect to database successfully");

?

}catch(Exception e){

System.err.println( e.getClass().getName() + ": " + e.getMessage() );

}

}

}

現在,讓我們來編譯運行程序并連接到數據庫 mycol

你可以根據你的實際環境改變 MongoDB JDBC 驅動的路徑。

本實例將 MongoDB JDBC 啟動包 mongo-java-driver-3.2.2.jar 放在本地目錄下:

$ javac -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC.java

$ java -cp .:mongo-java-driver-3.2.2.jar MongoDBJDBC

Connect to database successfully

Authentication: true

本實例中 Mongo 數據庫無需用戶名密碼驗證。如果你的 Mongo 需要驗證用戶名及密碼,可以使用以下代碼:

import java.util.ArrayList;

import java.util.List;

import com.mongodb.MongoClient;

import com.mongodb.MongoCredential;

import com.mongodb.ServerAddress;

import com.mongodb.client.MongoDatabase;

?

public class MongoDBJDBC {

public static void main(String[] args){

try {

//連接到MongoDB服務 如果是遠程連接可以替換"localhost"為服務器所在IP地址

//ServerAddress()兩個參數分別為 服務器地址 端口

ServerAddress serverAddress = new ServerAddress("localhost",27017);

List<ServerAddress> addrs = new ArrayList<ServerAddress>();

addrs.add(serverAddress);

?

//MongoCredential.createScramSha1Credential()三個參數分別為 用戶名 數據庫名稱 密碼

MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());

List<MongoCredential> credentials = new ArrayList<MongoCredential>();

credentials.add(credential);

?

//通過連接認證獲取MongoDB連接

MongoClient mongoClient = new MongoClient(addrs,credentials);

?

//連接到數據庫

MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");

System.out.println("Connect to database successfully");

} catch (Exception e) {

System.err.println( e.getClass().getName() + ": " + e.getMessage() );

}

}

}

創建集合

我們可以使用 com.mongodb.client.MongoDatabase 類中的createCollection()來創建集合

代碼片段如下:

import com.mongodb.MongoClient;

import com.mongodb.client.MongoDatabase;

?

public class MongoDBJDBC{

public static void main( String args[] ){

try{

// 連接到 mongodb 服務

MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

?

?

// 連接到數據庫

MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");

System.out.println("Connect to database successfully");

mongoDatabase.createCollection("test");

System.out.println("集合創建成功");

?

}catch(Exception e){

System.err.println( e.getClass().getName() + ": " + e.getMessage() );

}

}

}

編譯運行以上程序,輸出結果如下:

Connect to database successfully

集合創建成功

獲取集合

我們可以使用com.mongodb.client.MongoDatabase類的 getCollection() 方法來獲取一個集合

代碼片段如下:

import org.bson.Document;

import com.mongodb.MongoClient;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoDatabase;

?

public class MongoDBJDBC{

public static void main( String args[] ){

try{

// 連接到 mongodb 服務

MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

?

// 連接到數據庫

MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");

System.out.println("Connect to database successfully");

?

MongoCollection<Document> collection = mongoDatabase.getCollection("test");

System.out.println("集合 test 選擇成功");

}catch(Exception e){

System.err.println( e.getClass().getName() + ": " + e.getMessage() );

}

}

}

編譯運行以上程序,輸出結果如下:

Connect to database successfully

集合 test 選擇成功

插入文檔

我們可以使用com.mongodb.client.MongoCollection類的 insertMany() 方法來插入一個文檔

代碼片段如下:

import java.util.ArrayList;

import java.util.List;

import org.bson.Document;

?

import com.mongodb.MongoClient;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoDatabase;

?

public class MongoDBJDBC{

public static void main( String args[] ){

try{

// 連接到 mongodb 服務

MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

?

// 連接到數據庫

MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");

System.out.println("Connect to database successfully");

?

MongoCollection<Document> collection = mongoDatabase.getCollection("test");

System.out.println("集合 test 選擇成功");

//插入文檔

/**

* 1. 創建文檔 org.bson.Document 參數為key-value的格式

* 2. 創建文檔集合List<Document>

* 3. 將文檔集合插入數據庫集合中 mongoCollection.insertMany(List<Document>) 插入單個文檔可以用 mongoCollection.insertOne(Document)

* */

Document document = new Document("title", "MongoDB").

append("description", "database").

append("likes", 100).

append("by", "Fly");

List<Document> documents = new ArrayList<Document>();

documents.add(document);

collection.insertMany(documents);

System.out.println("文檔插入成功");

}catch(Exception e){

System.err.println( e.getClass().getName() + ": " + e.getMessage() );

}

}

}

編譯運行以上程序,輸出結果如下:

Connect to database successfully

集合 test 選擇成功

文檔插入成功

檢索所有文檔

我們可以使用 com.mongodb.client.MongoCollection 類中的 find() 方法來獲取集合中的所有文檔。

此方法返回一個游標,所以你需要遍歷這個游標。

代碼片段如下:

import org.bson.Document;

import com.mongodb.MongoClient;

import com.mongodb.client.FindIterable;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoCursor;

import com.mongodb.client.MongoDatabase;

?

public class MongoDBJDBC{

public static void main( String args[] ){

try{

// 連接到 mongodb 服務

MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

?

// 連接到數據庫

MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");

System.out.println("Connect to database successfully");

?

MongoCollection<Document> collection = mongoDatabase.getCollection("test");

System.out.println("集合 test 選擇成功");

?

//檢索所有文檔

/**

* 1. 獲取迭代器FindIterable<Document>

* 2. 獲取游標MongoCursor<Document>

* 3. 通過游標遍歷檢索出的文檔集合

* */

FindIterable<Document> findIterable = collection.find();

MongoCursor<Document> mongoCursor = findIterable.iterator();

while(mongoCursor.hasNext()){

System.out.println(mongoCursor.next());

}

?

}catch(Exception e){

System.err.println( e.getClass().getName() + ": " + e.getMessage() );

}

}

}

編譯運行以上程序,輸出結果如下:

Connect to database successfully

集合 test 選擇成功

Document{{_id=56e65fb1fd57a86304fe2692, title=MongoDB, description=database, likes=100, by=Fly}}

更新文檔

你可以使用 com.mongodb.client.MongoCollection 類中的 updateMany() 方法來更新集合中的文檔。

代碼片段如下:

import org.bson.Document;

import com.mongodb.MongoClient;

import com.mongodb.client.FindIterable;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoCursor;

import com.mongodb.client.MongoDatabase;

import com.mongodb.client.model.Filters;

?

public class MongoDBJDBC{

public static void main( String args[] ){

try{

// 連接到 mongodb 服務

MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

?

// 連接到數據庫

MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");

System.out.println("Connect to database successfully");

?

MongoCollection<Document> collection = mongoDatabase.getCollection("test");

System.out.println("集合 test 選擇成功");

?

//更新文檔 將文檔中likes=100的文檔修改為likes=200

collection.updateMany(Filters.eq("likes", 100), new Document("$set",new Document("likes",200)));

//檢索查看結果

FindIterable<Document> findIterable = collection.find();

MongoCursor<Document> mongoCursor = findIterable.iterator();

while(mongoCursor.hasNext()){

System.out.println(mongoCursor.next());

}

?

}catch(Exception e){

System.err.println( e.getClass().getName() + ": " + e.getMessage() );

}

}

}

編譯運行以上程序,輸出結果如下:

Connect to database successfully

集合 test 選擇成功

Document{{_id=56e65fb1fd57a86304fe2692, title=MongoDB, description=database, likes=200, by=Fly}}

刪除第一個文檔

要刪除集合中的第一個文檔,首先你需要使用com.mongodb.DBCollection類中的 findOne()方法來獲取第一個文檔,然后使用remove 方法刪除。

代碼片段如下:

import org.bson.Document;

import com.mongodb.MongoClient;

import com.mongodb.client.FindIterable;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoCursor;

import com.mongodb.client.MongoDatabase;

import com.mongodb.client.model.Filters;

?

public class MongoDBJDBC{

public static void main( String args[] ){

try{

// 連接到 mongodb 服務

MongoClient mongoClient = new MongoClient( "localhost" , 27017 );

?

// 連接到數據庫

MongoDatabase mongoDatabase = mongoClient.getDatabase("mycol");

System.out.println("Connect to database successfully");

?

MongoCollection<Document> collection = mongoDatabase.getCollection("test");

System.out.println("集合 test 選擇成功");

?

//刪除符合條件的第一個文檔

collection.deleteOne(Filters.eq("likes", 200));

//刪除所有符合條件的文檔

collection.deleteMany (Filters.eq("likes", 200));

//檢索查看結果

FindIterable<Document> findIterable = collection.find();

MongoCursor<Document> mongoCursor = findIterable.iterator();

while(mongoCursor.hasNext()){

System.out.println(mongoCursor.next());

}

?

}catch(Exception e){

System.err.println( e.getClass().getName() + ": " + e.getMessage() );

}

}

}

編譯運行以上程序,輸出結果如下:

Connect to database successfully

集合 test 選擇成功

總結

以上是生活随笔為你收集整理的Java 程序中使用 MongoDB教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。