Programa de Java EE Con Formulario HTML Conectado A Base de Datos MySQL
Programa de Java EE Con Formulario HTML Conectado A Base de Datos MySQL
FCFM
LCC
Objetivo
Realizar una aplicación Web de Java Enterprise Edition que consista en un
formulario HTML que recoja datos del usuario y se guarden en una base de datos.
Pasando primero por un servlet y un modelo codificados por el alumno.
Introducción
Este proyecto fue el último del curso. Gracias a los anteriores proyectos logramos
aprender los conceptos básicos de la programación orientada a objetos y el
profesor decidió dar un paso más allá para que experimentáramos de primera
mano con los programas de Java Web que se utilizan en la industria. Ya que no
contamos con conocimientos de programación en la web ni de bases de datos
este sería un curso introductorio y de experimentación para que desarrolláramos
nuestra lógica e intuición para crear un proyecto de este tipo.
Descripción del proceso
Antes de comenzar con el proyecto fue necesario que supiéramos sobre Java EE.
Java Enterprise Edition se utiliza para cualquier proyecto que use un servidor.
Descargué y configuré Apache Tomcat en Netbeans. Yo venía utilizando el IDE
Eclipse Photon pero no logré hacer que Tomcat funcionará. El proceso de
configuración en Eclipse era más complicado y revuelto, en cambio en Netbeans
solo tuve que descargar librerías y plugins. En especial el framework Struts 2.
Hice el proyecto de Java Application Web y le puse el nombre de “Formu”.
Netbeans me autogeneró varias carpetas con clases ya creadas, que son las
necesarias para comenzar a trabajar en un proyecto de Java Web. Los
programadores experimentados saben el propósito del código autogenerado, pero
en este curso nos enfocamos más en aprender lo mínimo necesario.
Como se observa en la imagen del servlet, hice una variable llamada ‘con’ de tipo
Connection, y crearía una variable ‘conexión’ de tipo BdConnection, para tener
acceso al método que me interesaba (obtenerConexion). Despues asigne lo que
devolvía el método obtenerConexion del objeto conexión, ya con sus parámetros
mandados, a la variable ‘con’. Esta variable me serviría para la variable statement
de tipo Statement, que se usaría para mandar una sentencia SQL a la base de
datos.
Antes de ejecutar el programa tenía que instalar MySQL. Primero descargué la
versión 8.0 pero no pude configurarla bien en mi computadora y tuve problemas
para que funcionará. Decidí mejor utilizar la versión 5.5, que me funcionó bien y no
tenía muchas diferencias.
Como no sabía utilizar bases de datos el profesor me ayudó dictándome
sentencias básicas de SQL. Estas sentencias las escribí en el MySQL 5.5
Command Line Client. Le mencioné al maestro que había opciones de
visualización de bases de datos como por ejemplo MySQL Workbench o PopSQL,
pero el maestro me respondió que es muy importante perderle el miedo a la línea
de comandos y que es más rápido hacer consultas desde ahí. Además, es la
mejor forma de aprender bien SQL.
Desde la línea de comandos cree la base de datos ‘primerabd’ y la tabla ‘agenda’.
Luego desde el servlet y usando la variable statement con su método
executeQuery, mandé una sentencia SQL donde mandaba los datos introducidos
por el usuario a la tabla agenda. Pero no funcionó, me saltaron errores. El IDE
mostraba que había un error de sintaxis en la sentencia SQL y también mostraba
algo sobre el doGet del servlet pero no entendí muy bien cuál era el error.
Fuera de clase me puse a investigar cómo lograr ese último paso y encontré que
executeQuery es para consultas, no para introducir datos en la base de datos. Y
que primero se tiene que “preparar la información” y luego mandarla. Utilicé el
método prepareStatement de la clase Connection, y lo asigné (devuelve un objeto)
a una variable llamada ‘stmt’ de tipo PreparedStatement. Después utilizando ‘stmt’
ejecuté el método executeUpdate.
Pasos
1. Llenar formulario desde el navegador y click al botón Enviar.
Este fue mi proyecto favorito del curso ya que tengo mucho interés en aprender a
programación para la web. Aprendí a crear una aplicación web de Java, instalar
librerías y plugins y utilizar lo básico del framework struts. Además de aprender
buenas prácticas como por ejemplo crear una clase para la conexión a la base de
datos, y un modelo para tomar los inputs del usuario. Al final aprendí a crear una
base de datos y a escribir comandos básicos de SQL, un lenguaje con el que
nunca había trabajado.
Fue un proyecto complicado ya que tuve muchos problemas más que nada con
configurar correctamente el software. Creo que mejoraré eso con la experiencia.
Los otros problemas, que eran ya sobre el código Java, los resolví buscando en
distintas páginas de internet. Pude notar que a pesar de que cada programador
trabaja diferente, Java tiene instrucciones comunes para ciertas acciones.