01 mayo, 2020

Crear un CRUD Web Service Rest-Json en Netbeans usando JEE specification

En este post aprenderemos a crear un servicio web Java Rest-Json usando JEE 6 specification. Crearemos los métodos para un CRUD que obtengan la información de una base de datos SQL Server a la cual nos conectaremos mediante JDBC.  Asimismo, implementaremos el patrón arquitectónico MVC, el patrón de diseño DAO y utilizaremos la IDE de Netbeans.



¿Qué es MVC?

Modelo-vista-controlador es un patrón de arquitectura de software, que separa los datos y la lógica de negocio de una aplicación de su representación y el módulo encargado de gestionar los eventos y las comunicaciones.

¿Qué es DAO?

un objeto de acceso a datos (en inglés, data access object, abreviado DAO) es un componente de software que suministra una interfaz común entre la aplicación y uno o más dispositivos de almacenamiento de datos, tales como una Base de datos o un archivo. El término se aplica frecuentemente al Patrón de diseño Object.

Los Objetos de Acceso a Datos pueden usarse en Java para aislar a una aplicación de la tecnología de persistencia Java subyacente (API de Persistencia Java), la cual podría ser JDBC, JDO, Enterprise JavaBeans, TopLink, EclipseLink, Hibernate, iBATIS, o cualquier otra tecnología de persistencia. Usar Objetos de Acceso de Datos significa que la tecnología subyacente puede ser actualizada o cambiada sin cambiar otras partes de la aplicación.

¿Qué es JDBC?

Java Database Connectivity (en español: Conectividad a bases de datos de Java), más conocida por sus siglas JDBC, es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java, independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que se utilice.


PASOS - CREAR EL WEB SERVICE

1. Crear la base de datos

Creamos la siguiente base de datos en el motor MS SQL Server y MySQL Server.

2. Crear un Web Aplication

Abrimos el Netbeans y nos dirigimos a la parte superior para hacer clic en la opción File/New Project/. En la ventana que aparece debemos seleccionar la categoria Java Web y el elegir el proyecto Web Application.





3. Crear el DTO/VO

Creamos la clase ProductoDTO dentro del paquete com.aprendec.dao.beans.

4. Crear el DAO

Creamos la interface ProductoDAO dentro del paquete com.aprendec.dao.

5. Crear la fabrica de DAOs

Crear la clase abstracta DAOFactory dentro del paquete com.aprendec.dao.factory.

El método getDAOFactory() recibirá como parámetro el origen de datos y según eso invocará el DAO especifico a dicho motor de base de datos.

Creamos las clases MySqlDAOFactorySqlServerDAOFactory que extiendan de DAOFactory dentro del paquete com.aprendec.dao.factory.




En nuestro ejemplo vamos a implementar los métodos de los DAOs SqlServerDAOFactory y MySqlDAOFactory, ya que estamos trabajando con estos 2 motores de bases de datos.  Esto es la ventaja de usar DAO en nuestros proyectos, ya que si en un momento dado nuestra aplicación cambiase de base de datos, solo tendríamos que implementar los métodos para ese nuevo DAO. Para el caso que mudemos de SQL Server a MySQL hemos creado el DAO MySqlDAOFactory, en este DAO tendríamos que implementar los mismos método que hicimos para SQL Server pero para el motor de base de datos MySQL, de la misma manera si tuviéramos que usar Oracle, PostgreSQL u cualquier otro motor de base de datos, tendríamos que crear esos nuevos DAOs.
Creamos la clase SQLServerConexion dentro del paquete com.aprendec.util.


Creamos la clase MySQLConexion dentro del paquete com.aprendec.util.


Creamos la clase Constantes dentro del paquete com.aprendec.util.


Ahora, debemos de agregar los jars de conexión SQL Server y MySQL.

Para ello, debemos hacer clic derecho al el proyecto y seleccionar la opción properties. En la venta que aparece debemos seleccionar la opción Libraries y agregar el jar de conexión SQL Server y el jar de conexión MySQL.


Creamos las clases que van a implementar los DAOs.

Crearemos la clase SQLServerProductoDAO y MySqlProductoDAO. Normalmente por cada entidad de nuestro modelo de datos tendremos un DAO.



  • Hasta aquí hemos terminado de desarrollar nuestro modelo, que a su vez esta aplicando el patrón DAO (Objeto de Acceso a Datos) que permite que nuestra aplicación no se esté ligada a una sola fuente de datos, sino que para el momento que sea necesario, nosotros podamos cambiar de motor de base de datos. Los datos serán traído independientemente si están en una base de datos o en un archivo.

4. Crear el Servicio (DTO/BO)

Crear la clase ProductoService dentro del paquete com.aprendec.service.

REST

5. Crear el Servicio web Restful

Crear la clase Utilidades dentro del paquete com.aprendec.util.

Crear la clase ReealoServiceRest dentro del paquete com.aprendec.ws.rest.

Debemos agregar el jar Gson.

Para ello, debemos hacer clic derecho en el proyecto y seleccionar la opción properties. En la venta que se abre seleccionamos la opción Libraries y agregamos el jar.


Ahora debemos configurar nuestro servicio Rest, para ello, podemos usar Java EE o Jersey.

Para este ejemplo vamos a utilizar Java EE 6 Especification.


Al dar clic en dicha opción, Netbeans nos creará una clase llamada ApplicationConfig dentro del paquete org.netbeans.rest.application.config.


Podemos cambiarle el nombre al paquete si lo deseamos. En mi caso yo lo voy a cambiar para seguir el estándar de los nombre.



8. Ejecutar aplicación

Clic derecho al proyecto y seleccionar la opción Run As/ Run on Server.

imagen

Abrir el Advanced Rest Client y probar los métodos que creamos.

BD SQL SERVER



Método listar productos



Métodos obtener productos



Método registrar producto

Nota: La imagen debe estar en base64 (ver ejemplo)


Método actualizar producto



Método eliminar producto


BD MYSQL


Para cambiar de motor de base de datos, solo debemos cambiarle el valor a la propiedad ORIGENDATOS de clase Constantes.



Descargara archivo

No hay comentarios, ¡cuéntame algo!

Me gustaría saber tu opinión. ¡Saludos!