Instrucciones:
Resuelve los siguientes ejercicios implementando las funcionalidades en Java utilizando Hibernate, MongoDB y eXistDB. Cada método debe ejecutarse correctamente y cumplir con los requisitos especificados. Se valorará la eficiencia, la correcta estructuración del código y el manejo adecuado de excepciones.
Contexto
La Consejería de Turismo de la Junta de Castilla y León gestiona bases de datos para almacenar información sobre alojamientos rurales en la región. Para ello, utiliza:
- Base de datos MySQL: alojamientosRuralesDB.
- Base de datos MongoDB: TurismoMySQL, con una colección llamada Turismo, donde se almacenan datos en formato JSON.
- Base de datos documental ExistDB: Para almacenar información estructurada en XML.
Preparación antes de comenzar:
- Ejecutar en MySQL Workbench el script turismo.sql para crear la base de datos alojamientosRuralesDB y cargar los datos necesarios.
- Crear en MongoDB la base de datos TurismoMySQL y la colección Turismo, importando los datos desde un archivo JSON proporcionado.
- Configurar un proyecto Maven con Hibernate y las dependencias necesarias para la manipulación de datos en MySQL, MongoDB y ExistDB.
Ejercicio 1: Integración de datos MongoDB -> MySQL
Método: migrarDatosAlojamientoTurismoRural()
Descripción: Se deben extraer datos de la colección Turismo en la base de datos TurismoMySQL en MongoDB y almacenarlos en la base de datos alojamientosRuralesDB en MySQL. Solo deben migrarse aquellos registros cuyo campo establecimiento tenga el valor «Alojamiento Turismo Rural».
Requisitos:
- Usar Hibernate para la inserción de datos en MySQL.
- Implementar consultas eficientes para recuperar y almacenar los datos.
- Utilizar logs para validar la correcta ejecución del proceso.
Ejemplo de documento JSON en MongoDB:
{
"nombre": "Casa Rural El Bosque",
"tipo": "Casa Rural de Alquiler",
"ubicacion": {
"provincia": "Salamanca",
"direccion": "Calle Mayor 15"
},
"telefono": "923123456",
"establecimiento": "Alojamiento Turismo Rural"
}
Ejercicio 2: Generación de recursos 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 la base de datos ExistDB en la colección HosteleriaCyL.
Formato esperado:
<provincia nombre="León">
<alojamiento tipo="Casa rural de Alquiler" num.establecimientos="320"/>
</provincia>
Requisitos:
- Extraer datos de MySQL y estructurarlos en XML.
- Crear un archivo XML por cada provincia y almacenarlo en ExistDB.
- Nombrar los archivos como provincia.xml (ejemplo:
León.xml
,Burgos.xml
).
Ejercicio 3: Transformación de datos Excel a XML
Método: crearDocumentoExcel()
Descripción: Se debe leer un archivo Excel alojamientosCyL.xlsx con datos de alojamientos rurales y generar un documento XML alojamientosCyL.xml con su contenido estructurado utilizando JAXB.
Estructura esperada:
<establecimientos>
<tipo denominacion="Casa Rural de Alquiler">
<casos provincia="Valladolid">678</casos>
</tipo>
</establecimientos>
Requisitos:
- Leer datos desde un archivo Excel con Apache POI.
- Generar y guardar un XML con JAXB.
- Implementar validaciones y gestión de errores.
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 |
Nota:
- El código debe seguir buenas prácticas de programación.
- La ausencia de logs, validaciones o eficiencia en la ejecución reducirá la puntuación.
- Se penalizará la presencia de código innecesario o mala estructura de clases.
