¿Qué aprenderá?

Al finalizar este tutorial el estudiante estará en capacidad de entender el proceso para cargar datos de prueba en el backend.

¿Qué necesita?

Para realizar este taller Ud. debe:

  1. Conocer los modelos de las entidades del caso bookstore
  2. Contar con un equipo con conexión a internet

Una vez se ha implementado la persistencia, se debe verificar que las tablas se han creado correctamente en la base de datos. Para esta verificación debe ejecutar el back asegurándose de que no exista ningún error de compilación. Luego, desde una pestaña del navegador debe ingresar a la siguiente dirección:

http://localhost:8080/api/h2-console 

Esta es la consola de H2, la base de datos en memoria que usamos para el curso.

Ahora debe ingresar los siguientes valores para JDBC URL, User Name y Password

Los tres valores anteriores los puede consultar en las variables spring.datasource.url,

spring.datasource.username y spring.datasource.password las cuales están definidas en el siguiente archivo:

src/main/resources/application.properties

Cuando haya ingresado los tres valores correctos en el formulario debe hacer clic en el botón Connect.

Luego, tendrá acceso a la siguiente vista:

En la parte izquierda tiene las tablas que se han creado a partir de las entidades del proyecto. Note que también existe la tabla BOOK_ENTITY_AUTHORS, la cual sirve como tabla intermedia para la asociación muchos a muchos entre Book y Author.

Ahora debe crear un archivo SQL con los datos de prueba para las tablas. En el proyecto bookstore en la ruta sql/data.sql existe un archivo de ejemplo.

El archivo inicia borrando los registros de todas las tablas.

delete from PRIZE_ENTITY;
delete from ORGANIZATION_ENTITY;
delete from REVIEW_ENTITY;
delete from BOOK_ENTITY_authors;
delete from AUTHOR_ENTITY;
delete from BOOK_ENTITY;
delete from EDITORIAL_ENTITY;

El orden de las instrucciones es importante. Se borran primero los premios (PRIZE_ENTITY) ya que no tienen ninguna asociación. Al no haber premios registrados, se pueden borrar las organizaciones (ORGANIZATION_ENTITY) que los otorgan. Luego se borran los comentarios (REVIEW_ENTITY) de los libros y la asociación entre libros y autores (BOOK_ENTITY_AUTHORS). Finalmente se borran los autores (AUTHOR_ENTITY), los libros (BOOK_ENTITY y las editoriales (EDITORIAL_ENTITY).

Note que no sería posible borrar primero las editoriales porque pueden existir libros asociados a las editoriales. Entonces, hasta no borrar los libros no se pueden borrar las editoriales.

Luego se insertan los valores para las tablas. El orden de inserción de los datos es de forma inversa a la eliminación. Es decir, se crean, en su orden, editoriales, libros, autores, la asociación entre libro y autor, reseñas, organizaciones y finalmente, premios.

Para ejecutar las instrucciones, se debe copiar el contenido del archivo, el cual se pega en la consola de H2 y se hace clic en el botón Run del menú (botón verde con el símbolo de ejecución).

Si las instrucciones son correctas en la parte inferior de la consola de H2 debería verse la traza de ejecución sin errores. Si aparece algún error debe corregirlo y ejecutar de nuevo.

Para comprobar que los datos se cargaron correctamente, puede desde el navegador ir a la ruta http://localhost:8080/api/books y ver un listado de libros.

Se recomienda que la información que se ingrese en la base de datos sea lo más cercana a la realidad. Por tanto, les sugerimos que usen una herramienta para la generación automática de datos. Una alternativa para ello es Mockaroo: https://www.mockaroo.com/

Al ingresar a la página tendrá esta vista:

Vamos ahora a crear datos para la tabla BOOK_ENTITY. Recordemos que la entidad tiene los siguientes atributos:

Ahora haremos la correspondencia de los atributos con las opciones que nos ofrece Mockaroo.

Por tanto, después de ajustar los nombres, tipos y demás, nuestro configuración del esquema se debe ver algo similar a lo siguiente:

Si se desea, antes de generar los datos, se puede tener una visualización previa de cómo se generarían para descargarlos. La visualización se puede realizar presionando el botón PREVIEW ubicado en la parte inferior de la pantalla.

Antes de generar los datos, valide cuántos registros requiere (#Rows), seleccione el formato SQL, y defina un nombre para la tabla, que para este caso será BOOK_ENTITY. Para este caso no requiere marcar la opción include CREATE TABLE.

Finalmente haga clic en el botón GENERATE DATA. Esto descargará un archivo con el código SQL para cargar los datos.

Tenga en cuenta que puede concatenar el contenido de todos los archivos generados en un único archivo que lo puede guardar en la ruta sql/data.sql.