Curso De Java: Cómo Crear Un Login? (Con Conexión A Base De Datos)
Wednesday, July 15, 2015
Luego de haber aprendido a crear formularios y a conectar nuestras aplicaciones hechas en Java con una base de datos, tanto de una forma básica o ya sea realizando un Pool de conexiones; ahora podremos fusionar ambas partes y/o conocimientos, para llevar a cabo la construcción de módulos en nuestro software, con una mayor funcionalidad y usabilidad.
En un capítulo anterior, pudimos observar e ilustrar como desarrollar un sencillo y/o básico formulario de acceso o Login en nuestro programa; el cual nos iba a permitir controlar el acceso al sistema a los usuarios previamente dictaminados y/o configurados en nuestro código, haciendo muy limitado el uso del mismo. Por ello, en esta ocasión llevaremos a cabo la construcción de un Login que se comunicará con una base de datos para llevar a cabo la verificación de los datos de acceso al programa como el usuario y la contraseña, que han sido asignados a las personas autorizadas para hacer uso del mismo. Este tipo de formulario de acceso, nos dará la posibilidad de ampliar el uso de un determinado software a más usuarios que se vayan registrando en dicho programa, por parte del administrador de este, el cual podrá darle las autorizaciones y/o permisos respectivos para el uso de algunas o todas las funcionalidades que ofrece el sistema de información.
Explicación por Videotutorial:
Explicación por Foto-Tutorial:
*Deberemos previamente crear una base de datos y luego crear una tabla que en este caso hemos llamado “usuarios”:
Esta tabla consta de tres campos principales:
-id_usuario: Este será la llave primaria de nuestra tabla, el tipo de datos es entero (INT), con una longitud de 11, auto increment y NOT NULL.
-usuario: Tipo de datos VARCHAR, con una longitud de 15 y NOT NULL.
-clave: Tipo de datos BLOB y NOT NULL. En este campo como su nombre lo indica será donde guardaremos la contraseña de cada usuario, por ello usamos el tipo de datos BLOB ya que nos permitirá guardar cadenas de caracteres binarias (bytes) permitiéndonos aumentar la seguridad de las claves.
-usuario: Tipo de datos VARCHAR, con una longitud de 15 y NOT NULL.
-clave: Tipo de datos BLOB y NOT NULL. En este campo como su nombre lo indica será donde guardaremos la contraseña de cada usuario, por ello usamos el tipo de datos BLOB ya que nos permitirá guardar cadenas de caracteres binarias (bytes) permitiéndonos aumentar la seguridad de las claves.
*Nos dirigiremos a nuestro proyecto en NetBeans IDE, seleccionamos nuestro paquete “Metodos” y damos clic derecho sobre el mismo; nos ubicamos en la opción “New” (Nuevo) y seguido damos clic sobre “Java Class…” (Clase Java):
*Antes de seguir con nuestra Clase, nos dirigiremos al formulario de acceso que creamos en un capítulo anterior de este curso, allí seleccionaremos el campo de texto donde se digitará el nombre de usuario; luego, damos clic derecho y escogemos la opción “Customize Code” (Personalizar el Código):
El procedimiento anterior deberemos realizarlo igualmente con el campo de contraseña (JPassswordField).
*Ahora, en la Clase “MetodosLogin” crearemos un método especial que nos permitirá llevar a cabo la verificación de los datos de ingreso al sistema; tales como, el usuario y la clave; para ello procedemos a realizar una consulta en la tabla "usuarios" de nuestra base de datos.
Nuestra Clase quedará de la siguiente forma:
package Metodos; import Formularios.Login; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.JOptionPane; public class MetodosLogin { Pool metodospool = new Pool(); public int validar_ingreso(){ String usuario = Login.txtUsuario.getText(); String clave = String.valueOf(Login.jpassClave.getPassword()); int resultado=0; String SSQL="SELECT * FROM usuarios WHERE usuario='"+usuario+"' AND clave=sha1('"+clave+"')"; Connection conect = null; try { conect = metodospool.dataSource.getConnection(); Statement st = conect.createStatement(); ResultSet rs = st.executeQuery(SSQL); if(rs.next()){ resultado=1; } } catch (SQLException ex) { JOptionPane.showMessageDialog(null, ex, "Error de conexión", JOptionPane.ERROR_MESSAGE); }finally{ try { conect.close(); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, ex, "Error de desconexión", JOptionPane.ERROR_MESSAGE); } } return resultado; } }
Si quieres una explicación más detallada sobre cada línea del código anterior, no dudes en visitar la siguiente entrada: "Código JAVA: Login con conexión a Base de datos."
*Una vez que tengamos lista nuestra Clase, procederemos a dar doble clic sobre el botón “Ingresar” de nuestro formulario Login:
*Cuando entremos al método de dicho botón, borraremos el comentario que está por defecto y pegaremos el siguiente código:
MetodosLogin metodoslogin = new MetodosLogin(); if(metodoslogin.validar_ingreso()==1){ this.dispose(); JOptionPane.showMessageDialog(null, "Bienvenido\n Has ingresado " + "satisfactoriamente al sistema", "Mensaje de bienvenida", JOptionPane.INFORMATION_MESSAGE); Formulario1 formformulario1 = new Formulario1(); formformulario1.setVisible(true); }else { JOptionPane.showMessageDialog(null, "Acceso denegado:\n" + "Por favor ingrese un usuario y/o contraseña correctos", "Acceso denegado", JOptionPane.ERROR_MESSAGE); }
*En este código, lo que hacemos es llamar al método que creamos con anterioridad y luego validar a través de un condicional "if" que se cumpla un requisito (que el método nos devuelva un valor igual a 1) y proceder a ejecutar lo que allí definimos, en caso contrario se llevará a cabo lo que planteamos en la parte del "else".
Si quieres una explicación más detallada sobre cada línea del código anterior, no dudes en visitar el siguiente artículo: "Código JAVA: Login con conexión a Base de datos."
*Seleccionaremos ahora el archivo Login.java; es decir, el formulario Login de nuestro proyecto, damos clic derecho sobre el mismo y escogemos la opción “Run File” (ejecutar archivo):
*Si ejecutamos nuestro formulario de acceso, podremos verificar que si digitamos datos incorrectos, no podremos ingresar al sistema:
*En caso contrario:
Ahora tenemos la posibilidad de integrar este módulo a nuestras aplicaciones, brindando así a nuestros usuarios y/o clientes; mayor seguridad y privacidad de la información de su empresa.
Si deseas descargar el video, junto con el fascículo del presente tema, sólo debes dirigirte a nuestra Zona de Descargas, y dar clic sobre el icono "Curso de JAVA Parte 14".
Para ver la Parte 13 del Curso, puedes dar clic en el siguiente enlace: "Curso de JAVA: Cómo hacer un Pool de Conexiones?"
Para ampliar más tus conocimientos en cuanto a desarrollar software en el lenguaje de programación JAVA, puedes ver todos los capítulos de "Cómo lo hago en JAVA?"
Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos.
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...