Para ir poniendo en práctica lo aprendido últimamente he creado esta aplicación que utiliza las siguientes tecnologías:
-MySql.
-Java:
-JPA (Entity classes).
-EJB.
-Java Server Faces (ManagedBeans).
-Primefaces.
Al final he dejado un frontend simple. Cuando haces clic en un botón te lleva a la página correspondiente. En un primero momento, al hacer clic en dicho botón, aparecían dos nuevos que permitían consultar el listado correspondiente (comics, música, películas, series y videojuegos) y agregar un producto nuevo a la BBDD, pero al final decidí que era mejor una única página para cada tipo de producto y que desde ella se realicen todas las operaciones.
Dejo aquí cómo se vería el listado de comics y, luego, como se agregaría un nuevo:
Para la tabla utilizo una dataTable de Primefaces. Te permite filtrar por cada campo sin necesidad de que tengas que hacer nada. También permite editar cada registro. Si se hace clic en el botón "Agregar" aparece una ventana modal como ésta:
La creación de la tabla, ventana modal, etc. es de una facilidad pasmosa. Todo lo hace el framework.
El resto de secciones son iguales. He priorizado la funcionalidad antes que la estética.
Problemas encontrados:
1) A partir de cierto momento, los estilos de dataTable desaparecieron. Todavía no sé por qué. Después de mucho investigar decidí empezar el proyecto de nuevo y sucedió lo mismo: al principio todo va bien y, a partir de un punto, se va todo al cuerno. Lo único que he conseguido es volver a un punto del proyecto cuando los estilos aún funcionaban, sacarlos del navegador e implementarlos con un fichero CSS externo.
2) Tuve un problema con los nombres de los campos en las tablas película y seriesTv. Tenían un campo llamado "dual" con un valor booleano, pero parece que entraba en conflicto con JPA o MySQL (sinceramente, aún no sé con cual) por considerarlo una palabra clave (la variable utilizada en las Entity class tenía el mismo nombre: dual). Después de averiguar que ese era el problema lo cambié por "Idiomas" de tipo String (y así aprovecho y pongo todas las pistas de audio). Aún utilizando la anotación @Column(name="dual") seguía pasando.



No hay comentarios:
Publicar un comentario