Ir al contenido principal

Spring MVC + Hibernate + Maven + PostgreSQL: CRUD básico

El objetivo de esta entrada es mostrar un ejemplo básico de CRUD (Create, Read, Update y Delete) sobre Spring MVC (Model View Controller) y PostgreSQL. Lo realicé cursando Bases de datos en UNIVALI. ¿Programar para la asginatura bases de datos? Sí, una de las cosas que me gustó de la mecánica de las clases de allí fué que al finalizar cualquier asignatura, el alumno tenía que programar una aplicación, obviamente enfocada en los contendios impartidos en dicha materia. Además, el alumno podía elegir el lenguaje de programación para desarrollar el trabajo, lo cual generaba ambientes de trabajo interesantes.

Objetivo de mi trabajo:

Crear una aplicación web básica basada en Spring MVC, Hibernate y Maven. La aplicación implementará todas las operaciones CRUD  utilizando PostgreSQL como base de datos. El contexto de la aplicación es gestionar alumnos de intercambio, por lo tanto permitirá añadir, leer, actualizar y eliminar alumnos y universidades.









Base de datos

La aplicación trabajará sobre una instancia de postgreSQL. Mediante el siguiente script creamos las tablas necesarias:


Se ha usado más de una tabla para poder realizar pruebas con claves ajenas.

Spring MVC


Para desarrollar la aplicación, desde Eclipse o cualquier otro IDE, creamos un nuevo proyecto web dinámico y después lo convertimos a proyecto MAVEN, aquí puedes ver el fichero pom.xml.
Las tablas están representadas mediante las clases Universidade y Aluno almacenadas en el paquete com.sprhib.model:



En el fichero WebAppConfig encontramos referencias importantes como @EnableWebMvc, que importa la configuración de Spring MVC desde WebMvcConfigurationSupportlo, y @EnableTransactionManagement, que habilita la capacidad de Spring de gestión de transacciones dirigidas por anotaciones:



Al principio del fichero anterior encontrábamos la anotación @PropertySource, que hace referencia al fichero application.properties:



En dicho fichero se almacenan los parámetros necesarios para la configuración de hibernate y la base de datos. La configuración habla por sí sola. La línea 11, hibernate.id.new_generator_mappings=false, permite  que las claves AUTO_INCREMENT se generaran directamente en postgreSQL mediante spring.

Continuamos con las clases DAO (Data Access Object) y las capas de servicio:



 Y para finalizar, generamos los controladores y los ficheros .jsp. Como la aplicación ejecutará todas las operaciones CRUD, el controlador será un poco extenso. Empecemos con el controlador base, que es el responsable de la página de inicio:

Y aquí su jsp correspondiente:



Ahora vamos a uno de los controladores con más peso, el controlador UniversidadeController:

 

 Ahora es momento de revisar todos los .jsp mapeados o asignados en este controlador.

Página para añadir añadir universidad:
 

Página para listar universidades:

Página para editar universidad:

Y finalmente, podemos desplegar la aplicación para realizar nuestras pruebas, tendrá el siguiente aspecto:

 


Todo el código empleado en este ejemplo está disponible en https://github.com/dsubires/Sring-MVC-Hibernate-Maven-PostgreSQL-CRUD-basico.

Comentarios

Entradas populares de este blog

Crear tu propio Portal Cautivo mediante EasyHotSpot

En este artículo voy a mostraros como implementar un servicio de Portal Cautivo de forma rápida y sencilla. Para aquel que desconozca qué es un portal cautivo, es un programa o máquina que, en una red informática, controla el tráfico HTTP y fuerza a los usuarios a pasar por una página pasarela para habilitar la navegación  por Internet de forma normal, generalmente identificándonos con usuario y contraseña. Un sistema de Portal Cautivo se puede montar en un router o en un ordenador. En nuestro caso vamos a usar un ordenador por ser la opción más fácil y económica.


Para montar el servidor vamos a utilizar la magnífica aplicación EasyHotSpot, la cual es Open Source y viene lista para instalar y funcionar. Los servidores que lleva integrados esta distribución son los siguientes: 

... todo montado sobre Ubuntu 9.04.

Instalar PAINT en Ubuntu

KolourPaint es un editor de imágenes libre fácil de entender y usar disponible en entornos GNOME, KDE, Xfce, etc...


Es un excelente sustituto para Paint, para instalarlo ejecutamos en un terminal:


Solucionar "Ha sido imposible conectar al servidor FTP xxxx.xxxx.com:21" en WordPress

Si obtienes un error indicándote "Ha sido imposible conectar al servidor FTP xxxx.xxxx.com:21" o “Ha sido imposible localizar el directorio de [...]“ cuando intentas actualizar o instalar algún plugin, theme o el mismo WordPress -mediante actualización automática- se debe a un problema interno de WordPress, por el cual no es capaz de encontrar el directorio del blog.
A continuación vemos el motivo y la solución al inconveniente:


Causa

Sucede generalmente cuando el directorio de instalación de WordPress se encuentra al menos 2 niveles inferiores al root por FTP. Se obtiene un mensaje de error similar a algunos de los siguientes: