溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

在開發(fā)中如何實(shí)現(xiàn)MongoDB與Java的集成

發(fā)布時(shí)間:2022-02-28 10:31:10 來源:億速云 閱讀:167 作者:iii 欄目:開發(fā)技術(shù)

這篇“在開發(fā)中如何實(shí)現(xiàn)MongoDB與Java的集成”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“在開發(fā)中如何實(shí)現(xiàn)MongoDB與Java的集成”文章吧。

1.什么是MongoDB?

MongoDB 是一種非常流行的 NoSQL 開源數(shù)據(jù)庫。它適用于集合而不是表和文檔而不是行和列,可提供高性能、高可用性和輕松的可擴(kuò)展性。

示例文件:

{
   "_id" : ObjectId("5b0d226b31a5f6595a7034de"),
   "firstName" : "Dharam",
   "lastName" : "Rajput"
}

1.1 我們需要什么

  • MongoDB 3.6

  • MongoDB-Java-Driver 2.10.1

  • JDK 1.8

  • Maven 3.0.3

1.2 所需的依賴

<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>2.10.1</version>
</dependency>
 </dependencies>

現(xiàn)在讓我們開始用 Java 實(shí)現(xiàn) Mongo 查詢,我們將從 CRUD 操作開始。

2. 與 MongoClient 的連接

如果我們使用低于2.10.0的MongoDB版本,那么我們使用MongoDB服務(wù)器,但我們使用的是更高版本,所以我們將使用MongoClient與MongoDB建立連接。

MongoClient mongo = new MongoClient( "localhost" , 27017 );
// If we use older version than
Mongo mongo = new Mongo("localhost", 27017);

3. 與數(shù)據(jù)庫的連接

現(xiàn)在連接數(shù)據(jù)庫。如果您的數(shù)據(jù)庫不存在,那么 Mongo 將創(chuàng)建一個(gè)新數(shù)據(jù)庫。

DB database = mongoClient.getDB("testdb");

如果我們?cè)诎踩J较率褂?Mongo,則需要身份驗(yàn)證。

MongoClient mongoClient = new MongoClient();
DB database = mongoClient.getDB("testdb"); // testdb is db name
boolean auth = database.authenticate("username", "password".toCharArray());

使用以下代碼檢查哪個(gè)數(shù)據(jù)庫已經(jīng)存在。

mongoClient.getDatabaseNames().forEach(System.out::println);

4. 蒙戈收藏

現(xiàn)在,創(chuàng)建一個(gè)相當(dāng)于RDBMS 中的表的集合。我們可以將集合設(shè)為:

database.createCollection("users", null);

獲取并打印所選數(shù)據(jù)庫的所有現(xiàn)有集合。

database.getCollectionNames().forEach(System.out::println);

5. 插入文檔

現(xiàn)在我們將在集合(表)中保存一個(gè)文檔(數(shù)據(jù))。

DBCollection table = db.getCollection("users");
BasicDBObject document = new BasicDBObject();
document.put("firstName", "Dharam");
document.put("lastName", "Rajput");
table.insert(document);

現(xiàn)在已經(jīng)在數(shù)據(jù)庫中插入了一個(gè)文檔。

{
   "_id" : ObjectId("5b0d226b31a5f6595a7034de"),
   "firstName" : "Dharam",
   "lastName" : "Rajput"
}

6. 更新文檔

假設(shè)我們有以下文檔:

{
   "_id" : ObjectId("5b0d226b31a5f6595a7034de"),
   "firstName" : "Dharam",
   "lastName" : "Rajput"
}

我們想更改此文檔的名字。

首先搜索 name="Dharam" 的文檔并使用新值 "Dharmendra" 更新它

BasicDBObject query = new BasicDBObject();
query.put("firstName", "Dharam");
BasicDBObject newDocument = new BasicDBObject();
newDocument.put("firstName", "Dharmendra");
BasicDBObject updateObj = new BasicDBObject();
updateObj.put("$set", newDocument);

7. 在集合中查找文檔

在用戶集合中搜索“firstName = Dharmendra”的文檔

DBCollection db= db.getCollection("user");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("firstName", "Dharmendra");
DBCursor cursor = db.find(searchQuery);
while (cursor.hasNext()) {
System.out.println(cursor.next());
}

8. 刪除文件

刪除“firstName = Dharmendra”的文檔。

DBCollection db= db.getCollection("user");
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("name", "mkyong");
db.remove(searchQuery);

本教程是 MongoDB 與 Java 的快速介紹。

現(xiàn)在在這里找到 MongoDB 與 Java 集成的完整代碼。

package com.demo.mongodb;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.MongoClient;
public class TestDB {
public static void main(String[] args) {
try {
/**** Connect to MongoDB ****/
// Since 2.10.0, uses MongoClient
MongoClient mongoClient = new MongoClient("localhost", 27017);
/**** Get database ****/
// if database doesn't exists, MongoDB will create it for you
DB db = mongoClient.getDB("testdb");
mongoClient.getDatabaseNames().forEach(System.out::println);
/**** Get collection / table from 'testdb' ****/
// if collection doesn't exists, MongoDB will create it for you
DBCollection collection = db.getCollection("users");
/**** Insert ****/
// create a document to store key and value
BasicDBObject document = new BasicDBObject();
document.put("firstName", "Dharam");
document.put("lastName", "Rajput");
collection.insert(document);
/**** Find and display ****/
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("firstName", "Dharam");
DBCursor dbCursor = collection.find(searchQuery);
while (dbCursor.hasNext()) {
System.out.println(dbCursor.next());
}
/**** Update ****/
// search document where name="Dharam" and update it with new values "Dharmendra"
BasicDBObject dbQuery = new BasicDBObject();
dbQuery.put("firstName", "Dharam");
BasicDBObject newDocument = new BasicDBObject();
newDocument.put("firstName", "Dharmendra");
BasicDBObject updateObj = new BasicDBObject();
updateObj.put("$set", newDocument);
collection.update(dbQuery, updateObj);
/**** Find and display ****/
BasicDBObject findQuery
&nbsp;&nbsp;&nbsp;= new BasicDBObject().append("firstName", "Dharmendra");
DBCursor findCursor = collection.find(findQuery);
while (findCursor.hasNext()) {
System.out.println(findCursor.next());
}
&nbsp;&nbsp;&nbsp;} catch (Exception e) {
e.printStackTrace();
&nbsp;}
}
}

以上就是關(guān)于“在開發(fā)中如何實(shí)現(xiàn)MongoDB與Java的集成”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI