Saltar al contenido

🧪 Examen Final Simulado – Acceso a Datos DAM (con soluciones)


✍️ Parte 1 – Lectura de datos

1. CSV + DOM

Enunciado:
Lee un archivo paises.csv y muestra el idioma oficial del país introducido por teclado usando DOM.

Solución Java (DOM + CSV manual):

import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
import java.util.Scanner;

public class LeerCSVConDOM {
    public static void main(String[] args) throws Exception {
        File archivo = new File("paises.csv");
        Scanner sc = new Scanner(archivo);
        Scanner teclado = new Scanner(System.in);
        System.out.print("Introduce nombre del país: ");
        String paisBuscado = teclado.nextLine();

        while (sc.hasNextLine()) {
            String[] datos = sc.nextLine().split(",");
            if (datos[0].equalsIgnoreCase(paisBuscado)) {
                System.out.println("Idioma oficial: " + datos[2]);
                break;
            }
        }
    }
}

2. SAX + JAXB

Enunciado:
Muestra cuántos practicantes tiene cada religión en España a partir del XML religiones.xml.

Solución resumida (solo lectura de datos SAX + JAXB combinados):

// SAXHandler personalizado para buscar <practica> donde id_pais="1"
// JAXB para mapear objetos si se desea usar clases POJO (opcional)

Salida esperada (ejemplo):

Catolicismo: 30000000
Protestantismo: 5000000
Islam: 2000000
Judaísmo: 1000000
Budismo: 500000
Hinduismo: 100000

3. EXCEL + JAXB

Enunciado:
Lee paises.xls y exporta el contenido como XML usando JAXB.

Solución (Apache POI + JAXB):

// Leer con POI
Workbook wb = WorkbookFactory.create(new File("paises.xls"));
Sheet hoja = wb.getSheetAt(0);
// Convertir a objetos y luego guardar con JAXB

🗃️ Parte 2 – Bases de datos NoSQL

4. eXistDB + XML_DB + XQJ

Enunciado:
Consulta desde eXistDB los países con más de 10M de practicantes del Islam.

XQuery con XQJ:

for $p in //practica[@id_religion="3"]
where xs:integer($p/@practicantes) > 10000000
return $p/@id_pais

5. MongoDB

Enunciado:
Consulta todos los países con más de 50 millones de habitantes y línea de costa > 5000 km.

Consulta en MongoDB:

db.paises.find({
  num_habitantes: { $gt: 50000000 },
  km_linea_costa: { $gt: 5000 }
})

Resultado esperado (ejemplo):

{
  "nombre": "España",
  "num_habitantes": 47420000, 
  "km_linea_costa": 7905
}

🖇️ Parte 3 – Hibernate + XML

6. Hibernate + XQJ

Enunciado:
Guarda países/religiones desde XML con Hibernate y consulta las 3 religiones más practicadas en Alemania.

XQuery simplificado (Alemania = id_pais=»4″):

for $p in //practica[@id_pais="4"]
order by xs:integer($p/@practicantes) descending
return <religion>{$p/@id_religion, $p/@practicantes}</religion>

🔁 Parte 4 – Proyecto Integrador

7. Menú de integración múltiple

Enunciado:
Crea una app con menú que lea datos desde CSV, XML, JSON y Excel; los consulte con distintas tecnologías y permita exportar entre formatos.

Opciones del menú:

  1. Leer CSV con DOM
  2. Leer XML con SAX/JAXB
  3. Leer Excel con POI
  4. Leer JSON con Gson
  5. Consultar XML con XQJ
  6. Exportar Excel → JSON
  7. Exportar XML → CSV

Consejo: Usa JavaFX o consola con switch para el menú.


✅ Conclusión

Si dominas estos ejercicios, estás más que preparado para el examen. Repasa bien:

  • Lectura y escritura con DOM, SAX, JAXB
  • Consultas con XQJ y uso de eXistDB
  • Manejo de JSON y Excel en Java
  • Uso básico de Hibernate con anotaciones
  • Consultas MongoDB básicas

¿Quieres este contenido en formato Markdown, HTML o listo para copiar en WordPress con editor visual? Pídemelo y te lo preparo ahora.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

¿Atascado con tu proyecto? Presupuesto GRATIS

X
error: Content is protected !!
Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad