MongoDB

MongoDB ist die führende Open-Source, Document Datenbank die für einfache Entwicklung und Skalierung aber auch für Big Data Szenarien entwickelt wurde.

Java und MongoDB - Start und Setup

Marc-David Militz
Expert
  • Artikel von Maxime Beugnet

    • englischer Originalartikel
      https://www.mongodb.com/blog/post/quick-start-java-and-mongodb--starting-and-setup
      Übersetzung mit freundlicher Genehmigung von MongoDB

      Natürlich kann man MongoDB nicht nur mit C# und NodeJS nutzen, sondern sogar mit Java ;-) Aus diesem Grund auch ein Tutorial für den Einstieg mit Java.

      In separaten Teilen werden wir folgende Themen abhandeln:
      • Operationen zum Erstellen, Lesen, Aktualisieren und Löschen von Datenbanken (CRUD)
      • Mapping von MongoDB BSON-Dokumenten direkt auf Plain Old Java Object (POJO)
      • Das MongoDB Aggregation Framework
      • Streams ändern
      • ACID-Transaktionen mit mehreren Dokumenten
      • Der MongoDB Java-Treiber für reaktive Streams.


        • Warum Java und MongoDB? Java ist eine der beliebtesten Sprache in der IT-Branche. Die Entwickler haben MongoDB vier Jahre in Folge zu ihrer meistgesuchten Datenbank gewählt. In dieser Reihe von Blogposts werde ich zeigen, wie mächtig diese beiden großartigen Technologien in Kombination sind und wie Sie auf diese Kraft zugreifen können.

          Um mitzumachen, können Sie jede beliebige Umgebung und die integrierte Entwicklungsumgebung Ihrer Wahl verwenden. Ich werde Maven 3.6.2 und Java OpenJDK 13 verwenden, aber der gesamte Code wird mit den Java-Versionen 8 bis 13 kompatibel sein. Verwenden Sie also das JDK Ihrer Wahl und aktualisieren Sie die Java-Version entsprechend in der pom.xml-Datei, die wir haben sind dabei einzurichten.

          Für den MongoDB-Cluster verwenden wir einen M0 Free Tier MongoDB-Cluster von MongoDB Atlas. Wenn Sie noch keinen haben, lesen Sie den Artikel Erste Schritte mit einem M0-Cluster-Blogbeitrag.
          https://www.mongodb.com/blog/post/quick-start-getting-your-free-mongodb-atlas-cluster

          • Vorbereitungen

            • Zunächst müssen wir ein neues Maven-Projekt einrichten. Sie haben an dieser Stelle zwei Möglichkeiten. Sie können entweder das Git-Repository dieser Serie klonen oder das Maven-Projekt erstellen und einrichten.

              • Verwenden des Git-Repository

                • Wenn Sie sich für git entscheiden, erhalten Sie den gesamten Code sofort. Ich empfehle Ihnen trotzdem, die Anleitung durchzulesen. Sie können das Repository mit dem folgenden Befehl klonen, wenn Sie möchten.

                  • Verwenden des Git-Repository

                    • Wenn Sie sich für git entscheiden, erhalten Sie die endgültige Lösung direkt, ich empfehle Ihnen jedoch durchzulesen, wie das Setup manuell funktioniert. Sie können das Repository mit dem folgenden Befehl klonen, wenn Sie möchten.
                      git clone https://github.com/mongodb-developer/java-quick-start

                      Über diesen Link können Sie das Repository auch als Zip-Datei herunterladen.
                      https://github.com/mongodb-developer/java-quick-start/archive/master.zip

                      • Manuell einrichten

                        • Sie können entweder Ihre bevorzugte IDE verwenden, um ein neues Maven-Projekt für Sie zu erstellen, oder Sie können das Maven-Projekt manuell erstellen. In jedem Fall sollten Sie die folgende Ordnerarchitektur erhalten:
                          java-quick-start/
                          ├── pom.xml
                          └── src
                          └── main
                          └── java
                          └── com
                          └── mongodb


                          Die pom.xml-Datei sollte den folgenden Code enthalten:
                          <?xml version="1.0" encoding="UTF-8"?>
                          <project xmlns="http://maven.apache.org/POM/4.0.0"
                          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
                          <modelVersion>4.0.0</modelVersion>

                          <groupId>com.mongodb</groupId>
                          <artifactId>java-quick-start</artifactId>
                          <version>1.0-SNAPSHOT</version>

                          <properties>
                          <maven-compiler-plugin.source>8</maven-compiler-plugin.source>
                          <maven-compiler-plugin.target>8</maven-compiler-plugin.target>
                          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
                          <mongodb-driver-sync.version>3.11.0</mongodb-driver-sync.version>
                          <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
                          </properties>

                          <dependencies>
                          <dependency>
                          <groupId>org.mongodb</groupId>
                          <artifactId>mongodb-driver-sync</artifactId>
                          <version>${mongodb-driver-sync.version}</version>
                          </dependency>
                          </dependencies>

                          <build>
                          <plugins>
                          <plugin>
                          <groupId>org.apache.maven.plugins</groupId>
                          <artifactId>maven-compiler-plugin</artifactId>
                          <version>${maven-compiler-plugin.version}</version>
                          <configuration>
                          <source>${maven-compiler-plugin.source}</source>
                          <target>${maven-compiler-plugin.target}</target>
                          </configuration>
                          </plugin>
                          </plugins>
                          </build>

                          </project>


                          Um sicherzustellen, dass alles korrekt funktioniert, sollten Sie in der Lage sein, ein Einfaches "Hello MongoDB!" - Programm zu erstellen und auszuführen. Erstellen Sie in "src/main/java/com/mongodb/ die Datei "HelloMongoDB.java":
                          package com.mongodb;

                          public class HelloMongoDB {

                          public static void main(String[] args) {
                          System.out.println("Hello MongoDB!");
                          }
                          }


                          Kompilieren Sie es dann und führen Sie es mit Ihrer IDE aus, oder verwenden Sie die Befehlszeile im Stammverzeichnis (in dem sich der Ordner "src" befindet):
                          mvn compile exec:java -Dexec.mainClass="com.mongodb.HelloMongoDB"

                          Das Ergebnis sollte so aussehen:
                          [...]
                          [INFO] Scanning for projects...
                          [INFO]
                          [INFO] --------------------< com.mongodb:java-quick-start >--------------------
                          [INFO] Building java-quick-start 1.0-SNAPSHOT
                          [INFO] --------------------------------[ jar ]---------------------------------
                          [INFO]
                          [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ java-quick-start ---
                          [INFO] Using 'UTF-8' encoding to copy filtered resources.
                          [INFO] Copying 1 resource
                          [INFO]
                          [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ java-quick-start ---
                          [INFO] Nothing to compile - all classes are up to date
                          [INFO]
                          [INFO] --- exec-maven-plugin:1.4.0:java (default-cli) @ java-quick-start ---
                          Hello MongoDB!
                          [INFO] ------------------------------------------------------------------------
                          [INFO] BUILD SUCCESS
                          [INFO] ------------------------------------------------------------------------
                          [INFO] Total time: 0.786 s
                          [INFO] Finished at: 2019-10-02T20:19:36+02:00
                          [INFO] ------------------------------------------------------------------------

                          Hinweis: Wenn Sie von guice.java Warnungen bezüglich eines illegalen reflektierenden Zugriffs erhalten, können Sie diese ignorieren. Guice wird von Maven verwendet und benötigt ein Update. Hier können Sie mehr darüber lesen.
                          https://github.com/google/guice/issues/1133
                          Diese Warnungen werden in einer zukünftigen Version von Guice and Maven verschwinden.

                          • Den Treiber zum Laufen bringen

                            • Jetzt, da unser Maven-Projekt funktioniert, können wir uns mit der MongoDB beschäftigen. Wenn Sie das Beispieldataset wie im Blogpost des Schnellstartatlas vorgeschlagen importiert haben,
                              https://www.mongodb.com/blog/post/quick-start-getting-your-free-mongodb-atlas-cluster
                              wird mit dem zu erstellenden Java-Code eine Liste der Datenbanken im Beispieldataset angezeigt.

                              Der erste Schritt besteht darin, einen "MongoClient" zu instanziieren, indem eine MongoDB Atlas-Verbindungszeichenfolge an die statische Methode "MongoClients.create()" übergeben wird. Dadurch wird mithilfe der Verbindungszeichenfolge eine Verbindung zu MongoDB Atlas hergestellt. Anschließend können wir die Liste der Datenbanken in diesem Cluster abrufen und ausdrucken, um die Verbindung mit MongoDB zu testen.
                              Erstellen Sie in "src/main/java/com/mongodb" die Datei "Connection.java":
                              package com.mongodb;

                              import com.mongodb.client.MongoClient;
                              import com.mongodb.client.MongoClients;
                              import com.mongodb.diagnostics.logging.Loggers;
                              import org.bson.Document;

                              import java.util.ArrayList;
                              import java.util.List;
                              import java.util.logging.Level;
                              import java.util.logging.Logger;

                              public class Connection {

                              public static void main(String[] args) {
                              Logger.getLogger(Loggers.PREFIX).setLevel(Level.WARNING);
                              String connectionString = System.getProperty("mongodb.uri");
                              try (MongoClient mongoClient = MongoClients.create(connectionString)) {
                              List<Document> databases = mongoClient.listDatabases().into(new ArrayList<>());
                              databases.forEach(db -> System.out.println(db.toJson()));
                              }
                              }
                              }

                              Wie Sie sehen, wird die MongoDB-Verbindungszeichenfolge aus den Systemeigenschaften abgerufen, daher müssen wir dies einrichten. Nachdem Sie die MongoDB Atlas-Verbindungszeichenfolge abgerufen haben, können Sie die Systemeigenschaft "mongodb.uri" in Ihre IDE einfügen. Hier ist meine Konfiguration mit IntelliJ zum Beispiel.

                              Wenn Sie Maven lieber in der Befehlszeile verwenden möchten, finden Sie hier die entsprechende Befehlszeile, die Sie im Stammverzeichnis ausführen können:
                              mvn compile exec:java -Dexec.mainClass="com.mongodb.Connection" -Dmongodb.uri="mongodb+srv://username:password@cluster0-abcde.mongodb.net/test?w=majority"

                              Hinweis: Vergessen Sie nicht die doppelten Anführungszeichen um den MongoDB-URI, um Überraschungen durch Ihre Shell zu vermeiden. Die Standardausgabe sollte folgendermaßen aussehen:
                              {"name": "admin", "sizeOnDisk": 303104.0, "empty": false}
                              {"name": "config", "sizeOnDisk": 147456.0, "empty": false}
                              {"name": "local", "sizeOnDisk": 5.44731136E8, "empty": false}
                              {"name": "sample_airbnb", "sizeOnDisk": 5.761024E7, "empty": false}
                              {"name": "sample_geospatial", "sizeOnDisk": 1384448.0, "empty": false}
                              {"name": "sample_mflix", "sizeOnDisk": 4.583424E7, "empty": false}
                              {"name": "sample_supplies", "sizeOnDisk": 1339392.0, "empty": false}
                              {"name": "sample_training", "sizeOnDisk": 7.4801152E7, "empty": false}
                              {"name": "sample_weatherdata", "sizeOnDisk": 5103616.0, "empty": false}


                              • Java und MongoDB

                                • Nehmen Sie an dieser Schnellstart-Serie teil, um weitere Tipps und Tricks zur Kombination dieser beiden großartigen Technologien zu erhalten.

Latest member activities

Tags

Recommend this community post