¿Quieres ponerte realmente a prueba antes del examen final de Acceso a Datos? Este simulacro avanzado te exigirá dominar DOM, SAX, JAXB, Hibernate, MongoDB, eXistDB, XQJ y más. ¡Vamos al grano!
🔥 Parte 1 – Ficheros complejos
1. Integración CSV + XML + Excel (nivel alto)
Diseña una aplicación que lea los siguientes archivos:
paises.csv
paises.xls
religiones.xml
Y cree una única estructura Java unificada (una lista de objetos Pais
) que combine todos los datos coherentemente. Cada país debe tener una lista de religiones con número de practicantes.
Solución esperada:
- Leer CSV/Excel y unificar datos por nombre.
- Parsear XML con DOM o JAXB.
- Usar equals/hashCode personalizados para evitar duplicados.
- Mostrar resumen final por consola.
📊 Parte 2 – Hibernate y consultas avanzadas
2. Hibernate + Relaciones OneToMany
- Crea un modelo con entidades
Pais
,Ciudad
,Religion
,Practica
con sus relaciones reales. - Importa todos los datos del XML a la base de datos con Hibernate.
- Crea una consulta JPQL que devuelva el país con más variedad religiosa y otro con más población religiosa total.
Solución esperada:
SELECT p FROM Pais p ORDER BY SIZE(p.practicas) DESC
SELECT p FROM Pais p JOIN p.practicas pr GROUP BY p ORDER BY SUM(pr.practicantes) DESC
🧾 Parte 3 – Consultas XQuery en eXistDB
3. XQuery + XQJ
- Sube
religiones.xml
a eXistDB. - Realiza una consulta XQuery que devuelva las ciudades con más de 1 millón de habitantes, agrupadas por país, y las religiones más practicadas en ese país.
Solución esperada (fragmento de XQuery):
for $c in //ciudad[xs:integer(@num_habitantes) > 1000000]
let $pais := $c/@pais
let $religion := max(//practica[@id_pais = $pais]/@practicantes)
return <resultado>
{$c/@nombre}
{$religion}
</resultado>
🧬 Parte 4 – MongoDB + JSON complejo
4. MongoDB + JSON enriquecido
- Usa
paises.json
y genera dinámicamente un nuevo documento JSON por país, incluyendo: nombre, habitantes, superficie, lista de religiones con - Inserta los documentos en MongoDB.
- Crea una consulta que devuelva los países donde alguna religión tenga más del 50
Ejemplo de documento resultante:
{
"nombre": "España",
"habitantes": 47420000,
"religiones": [
{ "nombre": "Catolicismo", "practicantes": 30000000, "porcentaje": 63.3 },
...
]
}
Consulta MongoDB:
db.paises.find({ "religiones.porcentaje": { $gt: 50 } })
🧩 Parte 5 – Desafío final
5. Aplicación completa (consola o GUI)
Diseña una aplicación que:
- Cargue datos desde CSV, Excel, JSON y XML.
- Permita guardar en MongoDB o BD relacional según el formato de entrada.
- Permita consultar países por cantidad de habitantes, religiones predominantes, o número de ciudades costeras.
- Exporte los resultados a formato XML, JSON o Excel (a elegir por el usuario).
- Incluya un menú interactivo y control de errores robusto.
Consejos para resolverlo:
- Usa
interface CargadorDatos
e implementaciones específicas. - Usa
Strategy
oFactory
para exportar. - Usa Hibernate y MongoDB con DAO separados.
✅ ¿Estás listo?
Este examen te prepara para un entorno real de trabajo: importación y exportación de datos, modelos relacionales y no relacionales, múltiples formatos y consultas complejas.
Si lo resuelves por completo, no solo apruebas, sino que te diferencias como profesional de verdad.
¿Quieres que este post se genere como HTML puro o en formato de WordPress visual? ¿Quieres los códigos Java completos para cada ejercicio? Solo dímelo.