Este proyecto es parte de la asignatura Acceso a Datos (ADAT) y muestra cómo trabajar con una base de datos PostgreSQL utilizando JDBC, leer datos desde un archivo XML y cargarlos en la base de datos. Incluye la creación de tablas, lectura de datos XML y manejo de inserciones.
- Requisitos
 - Estructura del Proyecto
 - Archivos Clave
 - Ejecución del Proyecto
 - Descripción del Funcionamiento
 - Notas Adicionales
 
- JDK 17+
 - PostgreSQL
- Servidor PostgreSQL en funcionamiento.
 - Base de datos llamada 
alumnosdb. - Usuario 
postgrescon contraseña------. 
 - Gradle (para compilar y ejecutar el proyecto).
 - Archivo XML ubicado en 
src/main/resources/alumnos.xml. 
src/
├── main/
│   ├── java/
│   │   └── com/kodeleku/
│   │       ├── JDBCinit.java        # Inicialización de la base de datos
│   │       ├── XMLReader.java       # Lectura y parseo de XML
│   │       ├── AlumnoDAO.java       # Interacción con la base de datos
│   │       ├── modelo/              # Modelos de datos
│   │       └── Main.java            # Punto de entrada principal
│   └── resources/
│       └── alumnos.xml              # Archivo de datos de alumnos en XML
└── test/
    └── java/
        └── com/kodeleku/
            └── AlumnoDAOTest.java    # Pruebas unitarias
- Configura la conexión con la base de datos y crea la tabla 
alumnossi no existe. 
- Lee y parsea el archivo XML 
alumnos.xmlen objetos Java (Alumno). 
- Inserta los datos leídos del XML en la tabla 
alumnosusando JDBC. - Maneja conflictos en claves únicas (DNI) para evitar inserciones duplicadas.
 
- Archivo con la lista de alumnos en formato XML.
 
- Coordina todo el proceso:
- Inicializa la base de datos.
 - Lee datos del XML.
 - Inserta los datos en la tabla.
 
 
- 
Configura PostgreSQL:
- Asegúrate de tener PostgreSQL en funcionamiento.
 - Crea una base de datos llamada 
alumnosdby un usuariopostgrescon contraseña------. 
 - 
Clona este repositorio:
git clone <URL-del-repositorio> cd <nombre-del-directorio>
 - 
Ejecuta el proyecto:
- Compila y ejecuta con Gradle:
./gradlew run
 - Alternativamente, compila y ejecuta desde IntelliJ IDEA.
 
 - Compila y ejecuta con Gradle:
 
Aunque realmente sería mejor si se usara un archivo .env para almacenar las credenciales de la base de datos. A continuación se detalla este proceso:
Para configurar las credenciales de la base de datos, crea un archivo .env en el directorio raíz del proyecto y añade las siguientes variables:
POSTGRES_URL=jdbc:postgresql://localhost:5433/alumnosdb
POSTGRES_USER=postgres
POSTGRES_PASSWORD=tu_contraseña_segura
Aquí tienes una sección que puedes añadir al README.md para explicar la importancia del archivo .gitignore y cómo asegurarte de que el archivo .env no sea subido accidentalmente a un repositorio público:
Para evitar exponer credenciales sensibles en repositorios públicos, es fundamental incluir el archivo .env en el archivo .gitignore. Esto asegura que no se suba accidentalmente a GitHub u otros sistemas de control de versiones.
- 
Si no tienes un archivo
.gitignoreen la raíz de tu proyecto, créalo. - 
Abre el archivo
.gitignorey añade la siguiente línea:# Ignorar el archivo .env .env - 
Guarda los cambios en
.gitignore. 
- Antes de subir cambios al repositorio, usa el siguiente comando para verificar que el archivo 
.envno está siendo rastreado:git status
 - Si ves el archivo 
.enven la lista de cambios a ser añadidos, elimina su rastreo con:Esto detendrá el seguimiento del archivo sin eliminarlo del sistema de archivos local.git rm --cached .env
 
Nunca incluyas credenciales o información sensible directamente en tu código fuente o en repositorios públicos. Usar un archivo .env combinado con un archivo .gitignore es una buena práctica para mantener tus datos seguros.
- 
Separación de Configuración y Código:
- Las credenciales y configuraciones sensibles no están en el código fuente.
 
 - 
Flexibilidad:
- Puedes cambiar las configuraciones sin modificar el código.
 
 - 
Seguridad:
- Al ignorar el archivo 
.enven Git, reduces el riesgo de exponer datos sensibles. 
 - Al ignorar el archivo 
 
- Crea el archivo 
.enven el directorio raíz del proyecto. - Añade las variables necesarias (URL, usuario, contraseña).
 - Ajusta las clases 
JDBCinityAlumnoDAOpara cargar estas variables usandodotenv. - Asegúrate de incluir 
.enven el.gitignore. - Documenta estas instrucciones en el 
README.md. 
- 
Inicialización de la Base de Datos (
JDBCinit.java):- Se conecta a PostgreSQL.
 - Crea la tabla 
alumnoscon las siguientes columnas:id(clave primaria, autoincremental).nombre,apellido,curso,dni(clave única).
 
 - 
Lectura del Archivo XML (
XMLReader.java):- Carga el archivo 
alumnos.xmlde la carpetaresources. - Convierte los datos del XML en una lista de objetos 
Alumno. 
 - Carga el archivo 
 - 
Inserción en la Base de Datos (
AlumnoDAO.java):- Inserta los datos en la tabla 
alumnos. - Ignora los registros duplicados basados en la clave única 
dni. 
 - Inserta los datos en la tabla 
 - 
Resultado Final:
- Muestra en la consola la cantidad de registros insertados.