Proyecto "Login" – Sistema de autenticación en Java con SQL Server
1. Introducción
En este proyecto he desarrollado una aplicación en Java que simula el acceso a una cuenta bancaria mediante un sistema de autenticación conectado a una base de datos SQL Server.
El objetivo principal es validar usuarios y contraseñas utilizando JDBC, aplicando una arquitectura organizada en capas para mejorar la estructura, mantenibilidad y escalabilidad del código.
2. Tecnologías utilizadas
- Java 25
- SQL Server 2025
- JDBC Driver para SQL Server
- IntelliJ IDEA
3. Arquitectura del proyecto
El proyecto está estructurado en varios componentes que separan claramente las responsabilidades:
- Main: gestiona la interacción con el usuario.
- LoginFacade: simplifica el acceso a la lógica de negocio.
- LoginDAO: realiza las consultas SQL a la base de datos.
- ConnectionManager: administra la conexión con SQL Server.
- queries.properties: almacena la configuración y las consultas SQL.
Esta separación permite un código más limpio, reutilizable y fácil de mantener.
4. Base de datos
La aplicación utiliza una base de datos llamada banco_web, que contiene una tabla llamada login.
Campos de la tabla:
- usuario
- clave
Ejemplo de registro:
- usuario: juan
- clave: 123
5. Funcionamiento del sistema
El usuario introduce sus credenciales en la aplicación. A continuación, se ejecuta una consulta parametrizada:
SELECT * FROM login WHERE usuario = ? AND clave = ?
Resultados posibles:
- Si existe coincidencia: se concede acceso al sistema.
- Si no existe coincidencia: se incrementa el contador de intentos.
- Tras tres intentos fallidos: el sistema bloquea el acceso.
6. Demostración del proyecto
Este proyecto demuestra el uso de Java, JDBC y SQL Server para implementar un sistema básico de autenticación con arquitectura modular y conexión a una base de datos real.
Orden de la demostración:
- Ejecución del sistema mostrando el bloqueo por intentos fallidos.
- Creación de un nuevo usuario directamente en SQL Server y uso como demostración.
- Ejecución correcta con acceso autorizado.