Instrucciones:
Implementa las siguientes tareas en Java utilizando Hibernate, MongoDB y eXistDB. Se evaluará la eficiencia, la correcta ejecución y la organización del código. Aplica buenas prácticas de programación y manejo de excepciones.
Contexto
La Junta de Castilla y León gestiona información sobre alojamientos rurales a través de múltiples sistemas de bases de datos:
- Base de datos MySQL: alojamientosRuralesDB.
- Base de datos MongoDB: TurismoMySQL, con una colección llamada Turismo que almacena datos en formato JSON.
- Base de datos ExistDB: Para almacenamiento de documentos XML estructurados.
Configuraciones previas
- Ejecutar en MySQL Workbench el script turismo.sql para crear y poblar la base de datos alojamientosRuralesDB.
- Crear en MongoDB la base de datos TurismoMySQL y la colección Turismo, importando los datos JSON proporcionados.
- Configurar un proyecto Maven con las dependencias necesarias para MySQL, MongoDB y ExistDB.
Ejercicio 1: Migración de datos de MongoDB a MySQL
Método: migrarDatosAlojamientoTurismoRural()
Descripción: Se deben extraer los datos de la colección Turismo en MongoDB y almacenarlos en alojamientosRuralesDB en MySQL, únicamente si el campo establecimiento tiene el valor «Alojamiento Turismo Rural».
Requisitos:
- Utilizar Hibernate para la inserción de datos en MySQL.
- Optimizar las consultas para minimizar el tiempo de ejecución.
- Incluir logs para verificar el correcto funcionamiento del proceso.
Ejemplo de datos en MongoDB:
{
"nombre": "El Refugio de Gredos",
"tipo": "Casa Rural de Alquiler",
"ubicacion": {
"provincia": "Ávila",
"direccion": "Carretera Nacional 110, Km 320"
},
"telefono": "920876543",
"establecimiento": "Alojamiento Turismo Rural"
}
Ejercicio 2: Generación de documentos XML en ExistDB
Método: crearRecursoHosteleria()
Descripción: A partir de los datos de alojamientosRuralesDB, generar un documento XML por cada provincia y almacenarlo en ExistDB en la colección HosteleriaCyL.
Formato esperado:
<provincia nombre="Burgos">
<alojamiento tipo="Casa Rural de Alquiler" num.establecimientos="315"/>
</provincia>
Requisitos:
- Consultar los datos desde MySQL y formatearlos en XML.
- Guardar cada documento con el nombre provincia.xml (ejemplo:
Burgos.xml
). - Implementar validaciones para evitar errores en la estructura de los documentos.
Ejercicio 3: Transformación de datos de Excel a XML
Método: crearDocumentoExcel()
Descripción: Leer el archivo alojamientosCyL.xlsx y generar un documento XML alojamientosCyL.xml utilizando JAXB.
Estructura esperada del XML:
<establecimientos>
<tipo denominacion="Casa Rural de Alquiler">
<casos provincia="Palencia">245</casos>
</tipo>
</establecimientos>
Requisitos:
- Leer el archivo Excel con Apache POI.
- Crear y estructurar los datos en XML con JAXB.
- Manejar excepciones en caso de errores en la lectura de datos.
Criterios de Evaluación
Criterio | Puntos |
---|---|
Configuración del proyecto Maven | 0,50 |
Ejercicio 1: Migración de datos MongoDB -> MySQL | 3,25 |
Ejercicio 2: Creación de recursos XML en ExistDB | 3,25 |
Ejercicio 3: Generación de documento XML desde Excel | 3,00 |
Notas:
- La falta de validaciones o errores en la ejecución reducirán la puntuación.
- Se valorará la modularidad y reutilización del código.
- Se deben incluir mensajes de depuración y logs para facilitar la verificación del proceso.
