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
postgres
con 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
alumnos
si no existe.
- Lee y parsea el archivo XML
alumnos.xml
en objetos Java (Alumno
).
- Inserta los datos leídos del XML en la tabla
alumnos
usando 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
alumnosdb
y un usuariopostgres
con 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
.gitignore
en la raíz de tu proyecto, créalo. -
Abre el archivo
.gitignore
y 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
.env
no está siendo rastreado:git status
- Si ves el archivo
.env
en 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
.env
en Git, reduces el riesgo de exponer datos sensibles.
- Al ignorar el archivo
- Crea el archivo
.env
en el directorio raíz del proyecto. - Añade las variables necesarias (URL, usuario, contraseña).
- Ajusta las clases
JDBCinit
yAlumnoDAO
para cargar estas variables usandodotenv
. - Asegúrate de incluir
.env
en 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
alumnos
con las siguientes columnas:id
(clave primaria, autoincremental).nombre
,apellido
,curso
,dni
(clave única).
-
Lectura del Archivo XML (
XMLReader.java
):- Carga el archivo
alumnos.xml
de 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.