Volver a la página principal
lunes 22 julio 2024
38

Cómo conectar MongoDB en Java

1. Configuración del Entorno

Instalación de MongoDB

Primero, asegúrate de tener MongoDB instalado y en funcionamiento en tu máquina. Puedes descargar MongoDB desde su página oficial.

Configuración de Maven

Para gestionar las dependencias en tu proyecto Java, utilizaremos Maven. Asegúrate de tener Maven instalado en tu sistema. Puedes instalarlo desde la página oficial de Maven.

Creación de un Proyecto Maven

Crea un nuevo proyecto Maven utilizando el siguiente comando:

mvn archetype:generate -DgroupId=com.example -DartifactId=mongodb-java -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Archivo pom.xml

Abre el archivo pom.xml y añade la dependencia de MongoDB Java Driver:

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

Importación de las Dependencias

Actualiza las dependencias del proyecto ejecutando:

mvn clean install

2. Conexión a MongoDB

Clase de Conexión

Crea una clase MongoDBConnection que se encargue de gestionar la conexión a MongoDB:

package com.example.mongodb;

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

public class MongoDBConnection {
    private static final String CONNECTION_STRING = "mongodb://localhost:27017";
    private static MongoClient mongoClient;

    public static MongoDatabase getDatabase(String dbName) {
        if (mongoClient == null) {
            mongoClient = MongoClients.create(CONNECTION_STRING);
        }
        return mongoClient.getDatabase(dbName);
    }

    public static void close() {
        if (mongoClient != null) {
            mongoClient.close();
        }
    }
}

En esta clase, CONNECTION_STRING es la URL de conexión a tu instancia de MongoDB. La clase proporciona métodos para obtener una base de datos y para cerrar la conexión.

3. Operaciones CRUD

Crear Documentos

Vamos a implementar una clase User y un método para insertar documentos en MongoDB.

package com.example.mongodb;

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

public class User {
    private String name;
    private int age;

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Document toDocument() {
        return new Document("name", name)
                .append("age", age);
    }

    public static void main(String[] args) {
        MongoDatabase database = MongoDBConnection.getDatabase("testdb");
        MongoCollection<Document> collection = database.getCollection("users");

        User user = new User("John Doe", 30);
        collection.insertOne(user.toDocument());

        MongoDBConnection.close();
    }
}

Este código define una clase User con un método toDocument para convertir la instancia en un documento BSON, que luego se puede insertar en la colección de usuarios.

Leer Documentos

Para leer documentos, puedes usar el siguiente código:

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

public class ReadUsers {
    public static void main(String[] args) {
        MongoDatabase database = MongoDBConnection.getDatabase("testdb");
        MongoCollection<Document> collection = database.getCollection("users");

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

        MongoDBConnection.close();
    }
}

Este código obtiene todos los documentos de la colección users y los imprime en formato JSON.

Actualizar Documentos

Para actualizar documentos, puedes utilizar el siguiente código:

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

public class UpdateUser {
    public static void main(String[] args) {
        MongoDatabase database = MongoDBConnection.getDatabase("testdb");
        MongoCollection<Document> collection = database.getCollection("users");

        collection.updateOne(Filters.eq("name", "John Doe"), Updates.set("age", 35));

        MongoDBConnection.close();
    }
}

Este código actualiza la edad de John Doe a 35.

Borrar Documentos

Para borrar documentos, utiliza el siguiente código:

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

public class DeleteUser {
    public static void main(String[] args) {
        MongoDatabase database = MongoDBConnection.getDatabase("testdb");
        MongoCollection<Document> collection = database.getCollection("users");

        collection.deleteOne(Filters.eq("name", "John Doe"));

        MongoDBConnection.close();
    }
}

Este código borra el documento cuyo campo name es John Doe.

4. Ejecución de la Aplicación

Para ejecutar cualquiera de las clases User, ReadUsers, UpdateUser o DeleteUser, simplemente compílalas y ejecútalas utilizando Maven:

mvn compile
mvn exec:java -Dexec.mainClass="com.example.mongodb.User"

Sustituye "com.example.mongodb.User" por la clase que desees ejecutar.

Conclusión

Conectar MongoDB con Java es un proceso sencillo cuando se utilizan las herramientas adecuadas. Siguiendo los pasos anteriores, puedes configurar rápidamente tu entorno, establecer una conexión con MongoDB y realizar operaciones CRUD básicas. Esto proporciona una base sólida para desarrollar aplicaciones más complejas que se beneficien de la flexibilidad y escalabilidad que ofrece MongoDB.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer