En aquest mòdul, aprendrem com integrar MongoDB amb Java. Explorarem les biblioteques i eines necessàries, veurem exemples pràctics de codi i realitzarem exercicis per consolidar els coneixements.

Continguts

Introducció a MongoDB amb Java

MongoDB és una base de dades NoSQL que es pot integrar fàcilment amb aplicacions Java utilitzant el controlador oficial de MongoDB per a Java. Aquest controlador proporciona una API rica per interactuar amb MongoDB de manera eficient.

Conceptes Clau

  • MongoClient: La classe principal per connectar-se a MongoDB.
  • MongoDatabase: Representa una base de dades específica.
  • MongoCollection: Representa una col·lecció dins d'una base de dades.
  • Document: Representa un document BSON (similar a JSON) dins d'una col·lecció.

Configuració del Projecte

Pas 1: Crear un Projecte Java

  1. Obre el teu IDE preferit (Eclipse, IntelliJ IDEA, etc.).
  2. Crea un nou projecte Java.

Pas 2: Afegir les Dependències de MongoDB

Si utilitzes Maven, afegeix la següent dependència al teu pom.xml:

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver-sync</artifactId>
    <version>4.3.1</version>
</dependency>

Pas 3: Connectar-se a MongoDB

Crea una classe Java per gestionar la connexió a MongoDB:

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;

public class MongoDBConnection {
    public static void main(String[] args) {
        // Connexió a MongoDB
        MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
        
        // Accedir a la base de dades
        MongoDatabase database = mongoClient.getDatabase("mydatabase");
        
        System.out.println("Connexió exitosa a la base de dades: " + database.getName());
        
        // Tancar la connexió
        mongoClient.close();
    }
}

Operacions CRUD amb Java

Crear Documents

import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

public class CreateDocument {
    public static void main(String[] args) {
        MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
        MongoDatabase database = mongoClient.getDatabase("mydatabase");
        MongoCollection<Document> collection = database.getCollection("mycollection");

        Document document = new Document("name", "John Doe")
                                .append("age", 30)
                                .append("city", "New York");
        
        collection.insertOne(document);
        System.out.println("Document inserit amb èxit");

        mongoClient.close();
    }
}

Llegir Documents

import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

public class ReadDocument {
    public static void main(String[] args) {
        MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
        MongoDatabase database = mongoClient.getDatabase("mydatabase");
        MongoCollection<Document> collection = database.getCollection("mycollection");

        FindIterable<Document> documents = collection.find();
        for (Document doc : documents) {
            System.out.println(doc.toJson());
        }

        mongoClient.close();
    }
}

Actualitzar Documents

import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.client.model.Updates;
import org.bson.Document;

public class UpdateDocument {
    public static void main(String[] args) {
        MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
        MongoDatabase database = mongoClient.getDatabase("mydatabase");
        MongoCollection<Document> collection = database.getCollection("mycollection");

        collection.updateOne(Filters.eq("name", "John Doe"), Updates.set("age", 31));
        System.out.println("Document actualitzat amb èxit");

        mongoClient.close();
    }
}

Eliminar Documents

import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import org.bson.Document;

public class DeleteDocument {
    public static void main(String[] args) {
        MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
        MongoDatabase database = mongoClient.getDatabase("mydatabase");
        MongoCollection<Document> collection = database.getCollection("mycollection");

        collection.deleteOne(Filters.eq("name", "John Doe"));
        System.out.println("Document eliminat amb èxit");

        mongoClient.close();
    }
}

Exercicis Pràctics

Exercici 1: Crear i Llegir Documents

  1. Crea una col·lecció anomenada students i insereix diversos documents amb els camps name, age i course.
  2. Llegeix tots els documents de la col·lecció students i mostra'ls per pantalla.

Solució

import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;

public class StudentCRUD {
    public static void main(String[] args) {
        MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");
        MongoDatabase database = mongoClient.getDatabase("mydatabase");
        MongoCollection<Document> collection = database.getCollection("students");

        // Crear documents
        Document student1 = new Document("name", "Alice")
                                .append("age", 22)
                                .append("course", "Computer Science");
        Document student2 = new Document("name", "Bob")
                                .append("age", 24)
                                .append("course", "Mathematics");
        
        collection.insertOne(student1);
        collection.insertOne(student2);

        // Llegir documents
        for (Document doc : collection.find()) {
            System.out.println(doc.toJson());
        }

        mongoClient.close();
    }
}

Conclusió

En aquest mòdul, hem après com integrar MongoDB amb Java, configurar el projecte, i realitzar operacions CRUD bàsiques. Amb aquests coneixements, estàs preparat per començar a desenvolupar aplicacions Java que utilitzin MongoDB com a base de dades. En els següents mòduls, explorarem funcions més avançades i aplicacions del món real.

© Copyright 2024. Tots els drets reservats