1. 程式人生 > 實用技巧 >2020重新出發,NOSQL,Java操作MongoDB資料庫

2020重新出發,NOSQL,Java操作MongoDB資料庫

Java操作MongoDB資料庫

除了通過啟動 mongo 程序進如 Shell 環境訪問資料庫外,MongoDB 還提供了其他基於程式語言的訪問資料庫方法。MongoDB 官方提供了 Java 和 Python 語言的驅動包,利用這些驅動包可使用多種程式設計方法來連線並操作 MongoDB 資料庫。

介紹一下如何設定和使用 MongoDB JDBC 驅動程式,通過 JDBC 實現與 MongoDB 服務端的通訊功能,使用者可以在此基礎上進行各種 Java 程式的開發。

安裝 Java 語言驅動包

1) Maven 方式

推薦使用 Maven 的方式管理 MongoDB 的相關依賴包,Maven 專案中只需匯入如下 pom 依賴包即可:

<dependency>
    <groupld>org.mongodb</groupld>
    <artifactld>mongodb-driver</artifact1d>
    <version>3.4</version>
</dependency>
<dependency>
    <groupld>org.mongodb</groupld>
    <artifactld>bson</artifactId>
    <version>3.4</version>
</dependency>
<dependency>
    <groupld>org.mongodb</groupId>
    <artifactId>Mongodb-driver-core</artifactld>
    <version>3.4</version>
</dependency>

2) 手動匯入

如果手動下載 mongodb-driver,還必須下載其依賴項 bson 和 mongodb-driver-core。在這裡需要注意的是,這三個安裝包需要配合使用,並且版本必須一致,否則執行時會報錯。

首先安裝 MongoDB,本節例項為 MongoDB 3.4.2 版本;然後安裝 Java 開發工具,本節採用 Eclipse 開發工具。通過 Github 網站下載驅動包,分別為 mongodb-driver-3.4.2.jar、mongodb-driver-core-3.4.2.jar、bson-3.4.2.jar。

程式設計實現

1) import 基礎類庫

若要完成 MongoDB 的增、刪、改、查等操作,則需要匯入很多類庫。

import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.dient.MongoCollection;

可以根據程式設計需要新增必要的類庫。

2) 連線資料庫

若要連線資料庫,則需要指定資料庫名稱。如果資料庫不存在,則 MongoDB 會自動建立資料庫。如下程式碼實現了簡易的資料庫連線:

public class App {
    public static void main(String[] args) {
        try {
            //連線MongoDB伺服器,埠號為27017
            MongoClient mongoClient = new MongoClient("localhost", 27017);
            //連線資料庫
            MongoDatabase mDatabase = mongoClient.getDatabase("test");  //test可選
            System.out.printin("Connect to database successfully!");
            System.out.printIn("MongoDatabase inof is : "+mDatabase.getName());
        } catch (Exception e) {
            System.err.printIn(e.getClass().getName() + ": " + e.getMessage());
        }
    }
}

3) 切換至集合

連線至具體資料庫以後,使用以下程式碼切換到集合,如果集合不存在,則使用如下程式碼新建集合:

MongoCollection collection = database.getCollection("myTestCollection");

4) 插入文件

切換至集合後,就可以進行文件的增、刪、改、查操作。首先定義文件,並使用 append。方法追加內容,程式碼如下:

Document document = new Document("_id", 1999)
                    .append("title", "MongoDB Insert Demo")
                    .append("description","database")
                    .append("likes", 30)
                    .append("by", "demo point")
                    .append("url", "http://c.biancheng.net/mongodb/");

document 為 BSON 型別的文件,實際上為一個列表,每項有兩個元素,即欄位名和值。

文件定義完成後,再使用 insertOne 方法將此文件插入集合:

collection.insertOne(document);

如果插入多條資料,需要先定義一個 Document 列表,然後用 add() 方法新增多個 Document 元素,最後用 insertMany() 方法插入,程式碼如下:

List<Document> documents = new ArrayList<Document>();documents.add(document1);collection.insertMany(documents);

5) 刪除文件

使用 delete() 方法刪除一個或多個文件,程式碼如下:

collection.deleteOne(document);collection.deleteMany(new Document ("likes", 30));

6) 更新資料

使用 updataOne() 方法更新一條資料或多個數據,程式碼如下:

collection.updataOne (eq ("likes", 30), new Document ("$set", new Document ("likes", 50)));java

updateOne() 方法中有兩個引數,第一個引數表示更新的內容等於 ("likes",30) 的文件,第二個引數為要修改的內容,使用 $set 引數修改當前值,修改的內容為 ("likes", 50)。

7) 查詢資料

利用遊標型別實現資料的查詢和遍歷顯示,使用遊標前需要 import MongoCursor 類庫。

import com.mongodb.client.MongoCursor;
document Doc = (Document)collection.find(eq("likes", 30)).iterator();
MongoCursor<Document> cursor =collection.find().iterator();
try{
    while (cursor.hasNext()){
        System.out.printin(cursor.next().toJson());
    }
} finally{
    Cursor.close();
}

設定 find() 方法的引數為查詢條件,引數為比較的 Document 元素。

8) 其他方法

刪除資料庫或集合,程式碼如下:

mDatabase.drop();collection.drop();

關閉客戶端連線,程式碼如下:

mongoClient.close();