|
ANEXO: Configuracion de un entorno para JPA
Para poder probar todo el codigo de los capitulos sobre JPA del blog, vamos a poner en marcha un entorno de desarrollo completo y funcional. Este entorno estara compuesto de:
Eclipse 3.5 (Galileo) como IDE
Derby Core plug-in y Derby UI Plug-in como base de datos
Este entorno permite desarrollar una aplicacion con el API de JPA 1.1. Si deseas utilizar JPA 2.0, necesitas un contenedor compatible con Java EE 6 (como Glassfish v3).
Aunque mi entorno de desarrollo funciona sobre Windows Server 2008, todo el software que vamos a utilizar en este anexo es multiplataforma, por lo que este anexo es valido para cualquier sistema operativo Windows, Linux o Mac-OS. Todas las rutas de disco que aparecen son tipo Windows.
1. INSTALACION DE ECLIPSE
La instalacion de eclipse es muy sencilla. Solamente tenemos que descargar la ultima version desde http://www.eclipse.org/downloads/. La version que necesitamos es Eclipse IDE for Java EE Developers. Una vez descargada, descomprimos en cualquier carpeta (en mi caso c:\eclipse) y ya podemos ejecutar el IDE (eclipse.exe desde Windows, eclipse.sh desde Linux). La primera vez que ejecutemos Eclipse nos aparecera una pantalla donde debemos selecionar el workspace. El workspace de Eclipse es donde vamos a guardar nuestros proyectos. Seleccionamos un directorio para el workspace (en mi caso c:\workspace) o dejamos el predeterminado, y marcamos la casilla "Use this as the default and do not ask again" (Usar este workspace por defecto y no preguntar mas) para que no vuelva a preguntarnos por la ubicacion del workspace cuando volvamos a arrancar Eclipse.
La primera vez que arranque Eclipse, veremos la pantalla de Bienvenida. Pulsamos en el boton Workbench (arriba a la derecha) y ya estaremos frente a nuestro entorno de trabajo.
2. INSTALACION DE LOS PLUG-IN DE DERBY
La instalacion de los Plug-in de Derby para Eclipse es aun mas sencilla si cabe. Solo tenemos que descargar dos archivos:
Derby 10 Core Plug-in
Derby 1.0 UI Plug-in
Puedes encontrar ambos en la web de descargas de Derby. Seleccionamos la ultima version oficial (Latest Official Release) y en la pagina de descargas de esta version encontraremos los plug-ins. Descomprimimos ambos archivos en la carpeta donde hemos instalado Eclipse y reiniciamos Eclipse si lo tenemos arrancado. Asi de simple.
3. CREAR UN PROYECTO JPA EN ECLIPSE
Ahora que ya hemos instalado todo lo necesario, ya podemos crear un nuevo proyecto JPA en Eclipse:
File > New > JPA Project
Escribimos un nombre para el proyecto (en mi caso IntroduccionJPA). Si hemos instalado un contenedor compatible con Java EE 6, podremos seleccionarlo en esta pantalla. Si no, dejamos todo por defecto. Para continuar pulsamos Next. En la siguiente pantalla podemos pulsar Finish para terminar, o Next si queremos seleccionar un proveedor de persistencia (por defecto es EclipseLink 1.1.0). Cuando finalmente pulsemos Finish, nos aparecera una ventana preguntandonos si queremos asociar la perspectiva JPA al proyecto. Eclipse dispone de varias perspectivas que adaptan el workbench (la pantalla donde trabajamos) al tipo de proyecto que estamos realizando. Selecciona Yes.
Ahora puedes ver a la izquierda del workbench la pestaña Project Explorer, y dentro de ella nuestro recien creado proyecto. Pinchamos con el boton derecho encima de el y seleccionamos:
Apache Derby > Add Apache Derby nature
Esto añadira a nuestro proyecto todos los jars que necesita para conectar con Derby. Ahora volvemos a pinchar con el boton derecho en el proyecto y seleccionamos:
Apache Derby > Start Derby Network Server
Nos aparecera un cuadro indicandonos que Derby va a ser iniciado en el puerto 1527. Pulsamos OK y ya tenemos la base de datos levantada y funcionando. Podemos probarlo desde la consola de comandos de Derby, llamada ij. Volvemos a pinchar con el boton derecho en el proyecto y seleccionamos:
Apache Derby > ij (Interactive SQL)
Abajo a la derecha del workbench vemos que la pantalla Console nos muestra el prompt de ij. Si hacemos doble click sobre la pestaña de console, o cualquier pestaña, esta se agrandara hasta ocupar el tamaño del workbech. Si volvemos a hacer doble click, volvera a su tamaño original devolviendo al workbench su aspecto anterior:
Escribimos el comando 'help' en la ventana Console para comprobar que Derby funciona:
ij> help;
Veremos que aparece una menu de ayuda de Derby. Es importante terminar los comandos de ij con un punto y coma para que los comandos se ejecuten. Recuerda que debes haber iniciado Derby (start Derby Network Server) antes de introducir un comando en ij o de realizar cualquier tarea de persistencia con JPA o JDBC.
Por ultimo vamos a crear una base de datos y una tabla que vamos a problar con algunos datos para verificar que todo esta funcionando correctamente.
ij> connect 'jdbc:derby://localhost:1527/IntroduccionJPA;create=true';
Este comando conectara con derby y creara la base de datos IntroduccionJPA si no existe, y volvera a mostrar el prompt de ij indicando que esta listo para recibir mas comandos. A continuacion, vamos a crear una tabla y a introducir algunos datos:
ij> create table prueba (
id integer,
contenido varchar(20)
);
ij> insert into prueba (id, contenido) values (1, 'Entrada de prueba');
Despues de ejecutar el primer bloque, veremos que ij nos informa de 0 rows inserted/updated/deleted (o lineas insertadas/actualizadas/borradas) puesto que solo hemos creado la tabla. Despues de ejecutar el segundo bloque, ij nos informa de 1 row inserted/updated/deleted, puesto que hemos insertado una nueva linea en la base de datos. Podemos comprobarlo con el siguiente comando:
ij> select * from prueba;
Veremos el registro que hemos insertado en la linea anterior. Todo funciona. Por ultimo, vamos a eliminar la tabla que hemos creado:
ij> drop table prueba;
4. RESUMEN
En este documento hemos visto como montar de forma sencilla un entorno de desarollo con Eclipse IDE y Derby Plug-in para seguir los capitulos de introduccion a JPA del blog. Aunque los articulos estan basados en JPA 2.0, el 99% del codigo que aparece en ellos es compatible con el API de JPA 1.1, y por tanto con nuestro entorno de desarrollo.
|