lumyn.org

PPR 24/25

Inbetriebnahme des MongoDB-Client
(org.mongodb:mongodb-driver-sync)

Zur Verbindung mit der MongoDB-Instanz benötigen wir erstmal eine Darstellung der eigenen Zugangsdaten in Java. Hierzu bietet sich die Klasse java.util.Properties an, da sie bereits das auf OLAT bereitgestellte Format einlesen kann. Ich erstelle eine Instanz von Properties und lade die Zugangsdaten in sie hinein.
Properties mongoCredentials = new Properties();
mongoCredentials.load(new FileInputStream("./PPR_WiSe24_002.txt"));
Jetzt erstelle ich den entsprechenden Connection String (im Code uri) gemäß der Dokumentation.
String uri = "mongodb://"
    + mongoCredentials.getProperty("remote_user")
    + ":"
    + mongoCredentials.getProperty("remote_password")
    + "@"
    + mongoCredentials.getProperty("remote_host")
    + ":"
    + mongoCredentials.getProperty("remote_port")
    + "/?authSource="
    + mongoCredentials.getProperty("remote_database");
Zuletzt erstelle ich eine Instanz des Clients mit meinem Connection String. Der Client kann dann benutzt werden.
MongoClient mongoClient = MongoClients.create(uri);
...
Hier nochmal als lauffähiger Source-Code:
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import org.bson.Document;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class Main {
    public static void main(String[] args) throws IOException {
        // Mongo Client
        Properties mongoCredentials = new Properties();
        mongoCredentials.load(new FileInputStream("./PPR_WiSe24_002.txt"));
        String uri = "mongodb://"
                   + mongoCredentials.getProperty("remote_user")
                   + ":"
                   + mongoCredentials.getProperty("remote_password")
                   + "@"
                   + mongoCredentials.getProperty("remote_host")
                   + ":"
                   + mongoCredentials.getProperty("remote_port")
                   + "/?authSource="
                   + mongoCredentials.getProperty("remote_database");
        MongoClient mongoClient = MongoClients.create(uri);
        MongoCollection<Document> speeches = mongoClient
            .getDatabase(mongoCredentials.getProperty("remote_database"))
            .getCollection("speeches");
        System.out.println(speeches.countDocuments());
    }
}