0% encontró este documento útil (0 votos)
85 vistas9 páginas

Login MVC en Java con MySQL y NetBeans

Cargado por

dsoto4962
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
85 vistas9 páginas

Login MVC en Java con MySQL y NetBeans

Cargado por

dsoto4962
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Clase 2 Login MVC BD MySQL

Proyecto: Login en Java con NetBeans y MySQL


usando MVC
Requisitos
NetBeans IDE

MySQL (puede ser a través de XAMPP o instalado de forma independiente)

Conector JDBC de MySQL ( mysql-connector-java.jar ), descargable desde


MySQL Connector/J.

Paso 1: Configuración de la Base de Datos en MySQL


1. Crear la Base de Datos:

Abre phpMyAdmin en http://localhost/phpmyadmin o usa una terminal MySQL.

Ejecuta el siguiente código SQL para crear la base de datos y la tabla:

CREATE DATABASE loginDB;


USE loginDB;

CREATE TABLE users (


id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL
);

INSERT INTO users (username, password) VALUES ('admin',


'12345');

2. Insertar Datos de Prueba:

Clase 2 Login MVC BD MySQL 1


El registro ('admin', '12345') se usará para las pruebas iniciales de login.

Paso 2: Crear el Proyecto en NetBeans


1. Crea un nuevo proyecto:

En NetBeans, selecciona File > New Project y elige Java Application.

Nombra el proyecto LoginApp y desmarca la opción Create Main Class.

2. Añadir el Conector JDBC:

Descarga mysql-connector-java.jar y añádelo a tu proyecto.

Haz clic derecho en Libraries dentro del proyecto, selecciona Add


JAR/Folder, y añade el archivo descargado.

Paso 3: Crear Paquetes y Clases


1. Crea los paquetes:

Crea tres paquetes en el proyecto:

modelo : para clases de datos y conexión a la base de datos.

vista : para la interfaz gráfica de usuario.

controlador : para la lógica de negocio y eventos.

Paso 4: Implementación del Modelo


En el paquete modelo , crea las siguientes clases.

Clase Usuario
Esta clase representa al usuario. Sus atributos son username y password .

package modelo;

// Clase Usuario que representa la estructura de un usuario c


on nombre de usuario y contraseña
public class Usuario {
private String username;

Clase 2 Login MVC BD MySQL 2


private String password;

// Constructor para inicializar los atributos de usuario


public Usuario(String username, String password) {
this.username = username;
this.password = password;
}

// Getters y Setters para acceder y modificar los datos d


e username y password
public String getUsername() {
return username;
}

public void setUsername(String username) {


this.username = username;
}

public String getPassword() {


return password;
}

public void setPassword(String password) {


this.password = password;
}
}

Clase Conexion
Esta clase gestiona la conexión a la base de datos MySQL.

package modelo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

Clase 2 Login MVC BD MySQL 3


// Clase Conexion que establece la conexión con la base de da
tos MySQL
public class Conexion {
private static final String URL = "jdbc:mysql://localhos
t:3306/loginDB"; // Ruta de la base de datos
private static final String USER = "root"; // Usuario de
MySQL
private static final String PASSWORD = ""; // Contraseña
de MySQL

// Método para obtener la conexión


public Connection getConnection() {
Connection connection = null;
try {
connection = DriverManager.getConnection(URL, USE
R, PASSWORD);
System.out.println("Conexión exitosa.");
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
}

Clase UsuarioDAO
Esta clase gestiona las operaciones en la base de datos para la clase Usuario ,
incluyendo la validación de las credenciales.

package modelo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

Clase 2 Login MVC BD MySQL 4


// Clase UsuarioDAO que contiene métodos para validar al usua
rio en la base de datos
public class UsuarioDAO {
private Conexion conexion; // Instancia de la clase Conex
ion para gestionar la conexión

public UsuarioDAO() {
this.conexion = new Conexion();
}

// Método para validar si el usuario y la contraseña son


correctos
public boolean validarUsuario(Usuario usuario) {
boolean existe = false;
String sql = "SELECT * FROM users WHERE username = ?
AND password = ?";

try (Connection conn = conexion.getConnection();


PreparedStatement ps = conn.prepareStatement(sq
l)) {
ps.setString(1, usuario.getUsername()); // Establ
ece el valor de username en la consulta
ps.setString(2, usuario.getPassword()); // Establ
ece el valor de password en la consulta

ResultSet rs = ps.executeQuery(); // Ejecuta la c


onsulta y obtiene el resultado
if (rs.next()) {
existe = true; // Si se encuentra el usuario,
existe se vuelve verdadero
}
} catch (SQLException e) {
e.printStackTrace();
}
return existe;

Clase 2 Login MVC BD MySQL 5


}
}

Paso 5: Implementación de la Vista


1. Crear LoginView como un JFrame Form :

Haz clic derecho en el paquete vista y selecciona New > JFrame Form.

Nombra la clase LoginView .

2. Agregar Componentes a LoginView :

Arrastra desde la paleta de NetBeans:

JLabel para "Usuario" y "Contraseña".

JTextField (cambia su nombre a txtUsername ) para el usuario.

JPasswordField (cambia su nombre a txtPassword ) para la contraseña.

JButton (cambia su nombre a btnLogin ) para el botón "Iniciar Sesión".

3. Agregar Getters en LoginView :

Añade estos métodos para que el controlador acceda a los componentes:

public javax.swing.JTextField getTxtUsername() {


return txtUsername;
}

public javax.swing.JPasswordField getTxtPassword() {


return txtPassword;
}

public javax.swing.JButton getBtnLogin() {


return btnLogin;
}

Paso 6: Implementación del Controlador

Clase 2 Login MVC BD MySQL 6


En el paquete controlador , crea la clase LoginController .

package controlador;

import modelo.Usuario;
import modelo.UsuarioDAO;
import vista.LoginView;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

// Clase LoginController que maneja la lógica del botón y val


ida al usuario
public class LoginController {
private LoginView view;
private UsuarioDAO usuarioDAO;

// Constructor que recibe la vista y el modelo para inici


alizar el controlador
public LoginController(LoginView view, UsuarioDAO usuario
DAO) {
this.view = view;
this.usuarioDAO = usuarioDAO;

// Asignar un ActionListener al botón de login


this.view.getBtnLogin().addActionListener(new ActionL
istener() {
@Override
public void actionPerformed(ActionEvent e) {
verificarLogin(); // Llama al método verifica
rLogin cuando se hace clic en el botón
}
});
}

Clase 2 Login MVC BD MySQL 7


// Método para verificar si las credenciales del usuario
son correctas
private void verificarLogin() {
String username = view.getTxtUsername().getText(); //
Obtener el texto del campo usuario
String password = new String(view.getTxtPassword().ge
tPassword()); // Obtener el texto del campo contraseña

// Crear un objeto Usuario con los datos ingresados


Usuario usuario = new Usuario(username, password);

// Validar el usuario con el método de UsuarioDAO


boolean existe = usuarioDAO.validarUsuario(usuario);

// Mostrar mensajes según el resultado de la validaci


ón
if (existe) {
JOptionPane.showMessageDialog(view, "Login exitos
o");
} else {
JOptionPane.showMessageDialog(view, "Usuario o co
ntraseña incorrecta");
}
}
}

Paso 7: Clase Principal


Crea una clase Main para iniciar la aplicación.

import modelo.UsuarioDAO;
import vista.LoginView;
import controlador.LoginController;

public class Main {

Clase 2 Login MVC BD MySQL 8


public static void main(String[] args) {
LoginView view = new LoginView(); // Crear la vista d
e login
UsuarioDAO usuarioDAO = new UsuarioDAO(); // Crear la
instancia del modelo DAO
LoginController controller = new LoginController(vie
w, usuarioDAO); // Crear el controlador y conectar la vista y
el modelo

view.setVisible(true); // Mostrar la vista al usuario


}
}

Actividad para Estudiantes


1. Explora el Patrón MVC: Revisa cómo se usa el patrón MVC en este proyecto y
responde:

¿Cuál es la función de cada clase ( Usuario , UsuarioDAO , LoginView ,


LoginController )?

¿Por qué la lógica de login está en el controlador y no en la vista?

2. Modifica el Proyecto

Agrega un nuevo mensaje si el usuario intenta ingresar sin completar los


campos.

1. Reflexiona sobre Seguridad:

¿Qué problemas de seguridad existen en este sistema de login?

Investiga cómo mejorar la seguridad de almacenamiento de contraseñas


en bases de datos.

Clase 2 Login MVC BD MySQL 9

También podría gustarte