lunes, 6 de julio de 2015

Desarrollo de una applicación web con Java EE (JSF + JPA) - Parte 1

En este serie vamos a desarrollar una aplicación web usando Java EE, integrando las siguientes tecnologías EclipseLink (JPA 2.1), PrimeFaces 5.0 JSF 2.0. En esta primera parte crearemos la base de datos en MySQL, el proyecto en NetBeans, y comenzaremos la codificación de las entidades de nuestra aplicación en Java usando la especificación JPA con EclipseLink.

Para ello usaremos NetBeans IDE 8.0.2, y de base de datos MySQL 5.6.25, usando MySQL JDBC Driver 5.1.23 para conectar nuestra aplicación Java con MySQL, y MySQL Workbench 6.3 para gestionar y visualizar la base de datos.


Contenido
  1. Introducción a la aplicación
  2. Creación del schema en MySQL
  3. Creación del proyecto en NetBeans
  4. Conectando la base de datos al proyecto de NetBeans
  5. Agregando más librerías al proyecto NetBeans
  6. Conclusión

Introducción a la aplicación

La aplicación de ejemplo que desarrollaremos será un gestor de libros para una cadena de librerías. Con esta aplicación, el administrador de la aplicación podrá gestionar las tiendas, y asignar qué libros se encuentran disponibles en cada tienda. Además, los clientes a través de la aplicación podrán consultar el catálogo de libros de cada tienda, y realizar pedidos.

Creación del schema en MySQL

En MySQL workbench elegimos File > New Query Tab del menú.

Creamos una base de datos, a la cual llamaremos nes_java_db, lo cual se hace con este comando:
CREATE SCHEMA nes_java_db;
Para ejecutar los comandos SQL en MySQL se puede usar el botón Execute Script, el cuál tiene un ícono de un rayo (ver imagen). Adicionalmente, se puede presionar Control+Shift+Enter si no se desea usar el botón.

Ejecutamos el comando, y una vez ejecutado en la ventana de Output nos debe salir un mensaje de confirmación. (Si no tienes la ventana de Output puedes mostrarla seleccionando View > Output desde el menú)

Si el nombre fue usado anteriormente, nos saldrá un error similar a éste: Error Code: 1007. Can't create database 'nes_java_db'; database exists
Para solucionarlo, deberás cambiarle el nombre a la BD de nes_java_db a otro de tu elección. Toma nota del nombre de la BD que lo usaremos luego.


Creación del proyecto en NetBeans

Abrimos NetBeans, y vamos a File > New Project para crear el proyecto.

En "Categories" elegimos la opción Java Web, y luego bajo "Projects" elegimos "Web Application".

Damos click en "Next", y ahora nos pide darle un nombre a nuestro proyecto, y elegir la ubicación. En mi caso lo llamaré "WebApp". Para cambiar la ruta del proyecto, se usa el botón "Browse" y se abre un cuadro de diálogo para elegir la nueva ubicación del proyecto. Cuando terminamos le damos siguiente.

A continuación se pide elegir el servidor a utilizar para nuestra aplicación, en mi caso usaré GlassFish Server 4.1 que vino con la instalación de NetBeans 8.0.2. Damos click en "Next".

Finalmente, se pide especificar si se va a utilizar algún framework en en el proyecto. En nuestro caso elegiremos Java Server Faces, con la librería JSF 2.2.

Vamos a la pestaña de "Components" y seleccionamos Primefaces, si tenemos varias versiones de Primefaces instaladas, podemos elegir la versión a usar haciendo click en el botón "More", yo utilizaré Primefaces 5.0 que vino instalada junto con NetBeans 8.0.2.

Damos click en "Finish" y NetBeans procede a crear nuestro proyecto. En este momento podemos probar que nuestra aplicación se haya creado correctamente. Para ello, damos click derecho en el nombre del proyecto y elegimos la opción "Run". (Adicionalmente, se puede ir Run > Run Project del menú)

Luego de unos momentos, se abre el explorador y muestra nuestro proyecto, con el mensaje "Hello from Facelets".


Conectando la base de datos al proyecto de NetBeans

Crearemos una nueva conexión de base de datos, para ello nos vamos a la pestaña de "Services", hacemos click derecho en "Database" y elegimos "New Connection" del menú. (Si no se tiene la pestaña de Services abierta, se puede mostrarla seleccionando "Window" > "Services" del menú principal)

Elegimos el driver adecuado, que en nuestro caso es MySQL y damos click en "Next".

Completamos la información requerida para conectarse a la base de datos, en "Database" ponemos el nombre que le proporcionamos a la base de datos de MySQL, en "User Name" y "Password" llenamos las credenciales de acceso para conectarse a MySQL. En "Host" y "Port" colocamos la información del host y el puerto de conexión para la base de datos. Como tengo MySQL instalado localmente y corriendo en el puerto por defecto, mi Host es localhost, y mi puerto es 3306. Si se desea probar si la conexión es válida, se da click en el botón "Test Connection" y de ser válido nos saldrá un mensaje "Connection Succedeed".

Finalmente damos click en "Finish" y nuestra conexión ya debería estar listada bajo "Databases".



Agregando más librerías al proyecto NetBeans

Si vamos la pestaña de "Projects" y expandimos la carpeta "Libraries" de nuestro proyecto, podemos ver que NetBeans agregó algunas librerías, pero éstas no son suficientes para el desarrollo de nuestra aplicación.

Para agregar una librería, hacemos click derecho en la carpeta de "Libraries" de nuestro proyecto y elegimos "Add Library".

Elegimos EclipseLink (JPA 2.1) que viene instalada con NetBeans 8.0.2, y también agregamos la librería del driver JDBC de MySQL que viene instalada con NetBeans 8.0.2, si no elegiste la opción de instalar el conector de MySQL a la hora de instalar NetBeans, la puedes descargar de la página de desarrolladores de MySQL. Finalmente, nuestro proyecto debe quedar con esas librerías agregadas.


Conclusión

Con esto, terminamos la configuración inicial de nuestro proyecto. Recapitulando lo que hicimos en esta parte: creamos la base de datos en MySQL, creamos el proyecto en NetBeans, agregamos una conexión de base de datos en NetBeans, y finalmente agregamos las librerías faltantes nuestro proyecto en NetBeans.

En la siguiente parte, entraremos de lleno a la codificación del proyecto. Empezaremos con la codifiación de clases Java que serán nuestras entidades, las cuales representan a las tablas de nuestra base de datos. Con ayuda de la tecnología EclipseLink, usaremos la especificación JPA para crear las tablas de la base de datos automáticamente junto con la creación de nuestras entidades.

No hay comentarios:

Publicar un comentario