From 3f4452079785a017a0d1660dab8dcaf93c4a4e26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isidoro=20Nevares=20Mart=C3=ADn?= Date: Thu, 29 Jan 2026 13:00:49 +0100 Subject: [PATCH] Commit Inicial --- .classpath | 40 +++++ .gitignore | 3 + .project | 23 +++ .settings/org.eclipse.core.resources.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 8 + .settings/org.eclipse.m2e.core.prefs | 4 + pom.xml | 17 ++ src/main/java/dam2/aadd/inm/AppPrincipal.java | 147 ++++++++++++++++++ 8 files changed, 244 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 pom.xml create mode 100644 src/main/java/dam2/aadd/inm/AppPrincipal.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..f7e4a1d --- /dev/null +++ b/.classpath @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..93e00af --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/bin/ +*.class +/target/ diff --git a/.project b/.project new file mode 100644 index 0000000..fdb9381 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + aadd_crud_mongodb + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..2f5cc74 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,8 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..fe53753 --- /dev/null +++ b/pom.xml @@ -0,0 +1,17 @@ + + 4.0.0 + aadd_crud_mongodb + aadd_crud_mongodb + 0.0.1-SNAPSHOT + + + + + org.mongodb + mongodb-driver-sync + 5.6.2 + compile + + + + \ No newline at end of file diff --git a/src/main/java/dam2/aadd/inm/AppPrincipal.java b/src/main/java/dam2/aadd/inm/AppPrincipal.java new file mode 100644 index 0000000..cd72fcf --- /dev/null +++ b/src/main/java/dam2/aadd/inm/AppPrincipal.java @@ -0,0 +1,147 @@ +package dam2.aadd.inm; + +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Pattern; + +import org.bson.Document; +import org.bson.conversions.Bson; + +import com.mongodb.client.FindIterable; +import com.mongodb.client.MongoClient; +import com.mongodb.client.MongoClients; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import com.mongodb.client.model.Filters; +import com.mongodb.client.model.Updates; +import com.mongodb.client.result.DeleteResult; +import com.mongodb.client.result.InsertManyResult; +import com.mongodb.client.result.InsertOneResult; +import com.mongodb.client.result.UpdateResult; + +/** +* @author Isidoro Nevares Martín +* Fecha: 29 enero 2026 +*/ +public class AppPrincipal { + + public static void main(String[] args) { + // TODO Auto-generated method stub + AppPrincipal app= new AppPrincipal(); + + // Cadena de conexion con la base de datos MongoDB + String uri = "mongodb://admin:mongodb_123@192.168.1.36:27017/"; + + // Se abre la conexión con MongoDB + MongoClient clienteMongo = MongoClients.create(uri); + + // Obtener una base de datos MongoDB desde Java (Crearla previamente en MongoDB) + MongoDatabase database = clienteMongo.getDatabase("Formacion"); + + // Obtener o crear una colección MongoDB + MongoCollection coleccionMDb= database.getCollection("C_ALUMNO"); + System.out.println(coleccionMDb); + + // Insertar sobre MongoDB + app.insertarInformacionMongoDB(coleccionMDb); + app.insertarInformacionMongoDB(coleccionMDb); + + // Inserción sobre MongoDB + app.consultarInformacionMongoDB(coleccionMDb); + + // Actualziación sobre MongoDB + app.actualizarInformacionMongoDB(coleccionMDb); + + // Borrado sobre MongoDB + app.borrarInformacionMongoDB(coleccionMDb); + + } + + private void insertarInformacionMongoDB(MongoCollection coleccionMDb){ + // Insertar UN DOCUMENTO en la colección + Document documentoAlumno1 = new Document(); + documentoAlumno1.append("nombre", "Pedro") + .append("edad", 22); + InsertOneResult insercionUno = coleccionMDb.insertOne(documentoAlumno1); + + System.out.println(insercionUno.getInsertedId()); + + Document documentoAlumo2 = new Document(); + documentoAlumo2.append("nombre", "María") + .append("edad", 25); + Document documentoDireccionAlumo2 = new Document(); + documentoDireccionAlumo2.append("calle", "Calle Francos Rodríguez, 15") + .append("ciudad", "Madrid") + .append("codigo_postal", "28039"); + documentoAlumo2.append("direccion", documentoDireccionAlumo2); + insercionUno = coleccionMDb.insertOne(documentoAlumo2); + + System.out.println(insercionUno.getInsertedId()); + + // Insertar VARIOS DOCUMENTOS de golpe en la colección + List documentosAlumnos = new ArrayList<>(); + documentosAlumnos.add(new Document().append("nombre", "Elena").append("edad", 33)); + documentosAlumnos.add(new Document().append("nombre", "Ana").append("edad", 41)); + documentosAlumnos.add(new Document().append("nombre", "Pablo").append("edad", 41)); + InsertManyResult insertManyResult = coleccionMDb.insertMany(documentosAlumnos); + + System.out.println(insertManyResult.getInsertedIds()); + + + } + + private void consultarInformacionMongoDB(MongoCollection coleccionMDb){ + // Obtener todos los documentos + FindIterable documentosEncontrados = coleccionMDb.find(); + System.out.println("\n--- Resultados find() ---"); + documentosEncontrados.forEach(document -> System.out.println(document)); + + // Consultar Colección con filtro = del documento + Bson filtro = Filters.eq("edad", 41); + documentosEncontrados = coleccionMDb.find(filtro); + System.out.println("\n--- Resultados find() ---"); + documentosEncontrados.forEach(document -> System.out.println(document)); + + // Consultar Colección con filtro 'like' del documento (Alumnos cuyo nombre empieza por 'P') + Document docFiltro = new Document("nombre", Pattern.compile("P")); + documentosEncontrados=coleccionMDb.find(docFiltro); + System.out.println("\n--- Resultados find() ---"); + + //otra forma de recorrer los resultados: + for (Document doc : documentosEncontrados) { + System.out.println(doc); + } + + } + + private void actualizarInformacionMongoDB(MongoCollection coleccionMDb){ + // Actualizar un DOCUMENTO que cumplen un filtro + Bson filtro = Filters.eq("edad", 41); + Bson edadNueva = Updates.set("edad", 111); + UpdateResult updateOne = coleccionMDb.updateOne(filtro, edadNueva); + System.out.println(updateOne.getMatchedCount()); + + // Actualizar los DOCUMENTOS que cumplen un filtro + UpdateResult updateMuchos = coleccionMDb.updateMany(filtro, edadNueva); + System.out.println(updateMuchos.getMatchedCount()); +} + + private void borrarInformacionMongoDB(MongoCollection coleccionMDb){ + // Borrar UNO por un campo (cuando nombre valga 'Elena') + Bson filtro = Filters.eq("nombre", "Elena"); + DeleteResult deleteResult = coleccionMDb.deleteOne(filtro); + System.out.println("\n--- Número de elementos borrados ---"); + System.out.println(deleteResult.getDeletedCount()); + + // Borrar MUCHOS por un campo (cuando edad valga 111) + filtro = Filters.eq("edad", 111); + deleteResult = coleccionMDb.deleteMany(filtro); + System.out.println("\n--- Número de elementos borrados ---"); + System.out.println(deleteResult.getDeletedCount()); + + // Borrar todos los documentos de la colección + deleteResult = coleccionMDb.deleteMany(Filters.empty()); + System.out.println("\n--- Número de elementos borrados ---"); + System.out.println(deleteResult.getDeletedCount()); + } +}