Sei sulla pagina 1di 4

Ejercicio JDBC

DAM Programación
12 de mayo de 2020

Resumen
Ejecicio final evaluable para el tema de jdbc, se entrega ya hecha la
base de datos en sqlite para su trabajo directamente, mas los script de
creación de tablas e insercción de datos para dar una pista de las tablas
y sus relaciones.

1
Se pide realizar un programa que realice las típicas funciones CRUD sobre
las tablas. En este caso son dos tablas Categoria y Libro, ambas con una relación
de uno a muchos, que queda especificado con la clave foránea en la tabla Libro.

Estructura del proyecto


Se creará un proyecto de IntelliJ que contemple los siguientes directorios y
packages:

Se incorporará la libreria de jdbc sqlite para conectar el proyecto con la


base de datos sqlite
Directorio BD donde se ubicará la base de datos

Directorio Files donde se indicarán los ficheros de salida.


Directorio Config donde se localizará un fichero propierties que recogerá
la propiedades de la conexión para luego cargarlas en el fichero que se
encarga de realizar la conexión.
En la carpeta src se realizarán los siguientes packages:

• package modelos donde radicaran las clase Libro y Categoria, clases


POJO
• package daos donde se abergarán las interfaces:
◦ InterfazDAO que planteará los siguientes métodos:
1. listarTodo
2. listarPorId
3. actualizarPorId
4. borrarPorId
5. crear
◦ InterfazLibroDAO
◦ InterfazCategoriaDAO
◦ Clase LibroDAO
◦ Clase CategoriaDAO
Clase Conexion que usará el patrón singleton para realizar la conexión la
base de datos

2
Borrado de libro
Cualquier borrado de un libro conllevará un registro del mismo, en vez de
usar un trigger como se propuso en el tema de sqlite, se va a llevar en un
fichero denominado librosBorrados.txt que reside en la carpeta Files y teneindo
en cuenta que los registros de las tablas son:

sqlite> select * from categoria ;


id tipo tematica
---------- -------------- -----------
1 Bases de datos Informática
2 Programacion Informática
3 Redes Informática
4 Ofimatica Informática
5 Hardware Informática
6 Seguridad Informática
7 Aplicaciones w Informática
8 Sistemas opera Informática
9 Miscelanea Otros
sqlite> select * from libro;
id nombre autor editorial idCategoria
---------- ----------- ---------- ----------- -----------
1 Santa Tecla Pepito Editorial 1 3
2 Programando Pepito Editorial 3 2
3 Terminator Paquito Editorial 1 5
4 WebOS Andreita Editorial 3 7
5 Santa Tecla Pepito Editorial 1 8
6 Buceando en Pepito Editorial 2 1
7 Windows (Ke Paquito Editorial 2 8
8 He perdido Andreita Editorial 1 6
9 Sin RETURN Pedrolo Editorial 6 2
10 Pruebas Pedrolo Editorial 6 9
De manera que si borramos el primer registro de la tabla libro en el fichero
deberá añadirse:

Santa Tecla Pepito Editorial 1 Redes Fecha_de_borrado


Es decir que en vez de guardar el idCategoria (en este caso 3) guardamos el
nombre de la categoría (en este caso Redes), esto implica que antes de hacer el
borrado de la tabla libro hay que consultar la tabla categoria por su id para que
nos devuelva el nombre de la categoría, esto se puede hacer usando el método
implementado en CategoriaDAO que devuelve un objeto Categoria dada su id.
Y la fecha de borrado se puede obtener de LocalDate.now()

3
Borrado de categorías
De forma similar vamos a borrar registros de la tabla categoria, guardando
un registro del borrado en un fichero llamado categoriasBorradas.txt que reside
en la carpeta Files y con el siguiente formato:

Programacion Informática Fecha_de_borrado


Programando Pepito Editorial 3
Sin RETURN Pedrolo Editorial 6
Es decir, como hay integridad referencial en las tablas, se incluirá los libros
que se borran al borrar dicha categoría, esto se consigue añadiendo el siguiente
método en la InterfazLibroDAO:
List<Libro> obtenerLibrosPorIdCategoria(Integer idCategoria)
Además de añadir esos dos libros borrados al fichero librosBorrados.txt.
IMPORTANTE LOS FLUJOS DE ESCRITURA EN LOS FICHE-
ROS NO DEBEN BORRAR EL FICHERO, SINO AÑADIR LOS
DATOS AL FICHERO EXISTENTE.

Clase Test
En esta clase probaremos nuestro proyecto haciendo las siguiente acciones
(no hace falta usar Scanner )
1. Crearemos una categoría denominada Scrum con temática Informática
2. Añadimos un nuevo libro a dicha categoría con los siguientes datos:

MÉTODOS ÁGILES: SCRUM, KANBAN, LEAN de CARMEN


LASA GOMEZ y de la editorial Anaya
3. Actualizaremos en esta nueva categoría cambiando el nombre de Scrum a
Metodologías ágiles

4. Listamos todos las categorías.


5. Actualizamos el registro de la tabla libro:

2 Programando Pepito Editorial 3 2

para cambiar el título a Programación en Java


6. Borramos la categoría Programación
7. Borrarmos el libro con id igual a 1
8. Listamos todos los libros

9. Hay que respetar el orden de las acciones solicitadas.

Potrebbero piacerti anche