Primero, asegúrate de tener MongoDB instalado y en funcionamiento en tu máquina. Puedes descargar MongoDB desde su página oficial.
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.
Crea un nuevo proyecto Maven utilizando el siguiente comando:
mvn archetype:generate -DgroupId=com.example -DartifactId=mongodb-java -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
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>
Actualiza las dependencias del proyecto ejecutando:
mvn clean install
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.
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.
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.
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.
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
.
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.
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.
Jorge García
Fullstack developer