-
Notifications
You must be signed in to change notification settings - Fork 0
Jepuj21/proyecto-final-java
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
================================================================================
SISTEMA DE GESTIÓN DE CINE
v1.0
================================================================================
DESCRIPCIÓN:
Sistema Java para gestionar actores, ciudades y países de una base de datos de cine.
Permite buscar, visualizar e interactuar con los datos mediante un menú interactivo.
================================================================================
ESTRUCTURA DEL PRESENTACION:
* Nombre: Jesus Pujols Luciano
* Matricula: 100215059
================================================================================
================================================================================
ESTRUCTURA DEL PROYECTO:
================================================================================
src/
├── Main.java - Aplicación principal con menú interactivo
├── com/cine/
│ ├── Data/ - Entidades de datos
│ │ ├── Entity.java - Clase base
│ │ ├── Actor.java - Entidad de actores
│ │ ├── City.java - Entidad de ciudades
│ │ └── Coutry.java - Entidad de países
│ ├── Model/ - Modelos ORM
│ │ ├── EntityModel.java - Clase base para ORM
│ │ ├── ActorModel.java - Modelo de actores
│ │ ├── CityModel.java - Modelo de ciudades
│ │ ├── CoutryModel.java - Modelo de países
│ │ └── iORMObject.java - Interfaz de ORM
│ └── util/
│ └── DatabaseConnection.java - Gestión de conexión a BD
================================================================================
REQUISITOS:
================================================================================
1. Java Development Kit (JDK) 17 o superior
2. MySQL Server 8.0 o superior
3. Base de datos "sakila" (base de datos de ejemplo de MySQL)
4. Driver MySQL: mysql-connector-java (versión 8.0.x o superior)
================================================================================
CONFIGURACIÓN DE LA BD:
================================================================================
1. Instalar MySQL Server desde: https://dev.mysql.com/downloads/mysql/
2. Descargar e instalar la BD Sakila:
- Descargar desde: https://dev.mysql.com/doc/sakila/en/
- Restaurar en MySQL: mysql -u root sakila < sakila-schema.sql
3. Actualizar credenciales en: com/cine/util/DatabaseConnection.java
- DB_URL: "jdbc:mysql://localhost:3306/sakila"
- USER: "root"
- PASSWORD: "" (vacío por defecto)
4. Agregar driver MySQL al classpath del proyecto
================================================================================
USO DEL PROGRAMA:
================================================================================
1. Ejecutar: Main.java
2. Menú principal:
[1] Gestionar Actores
[2] Gestionar Ciudades
[3] Gestionar Países
[4] Salir
3. Submúes disponibles:
- Ver todos los registros
- Buscar por ID
- Buscar por nombre
- Volver al menú principal
================================================================================
FUNCIONALIDADES:
================================================================================
ACTORES:
✓ Listar todos los actores
✓ Buscar actor por ID
✓ Buscar actores por nombre/apellido
✓ Ver: ID, Nombre, Apellido, Fecha de actualización
CIUDADES:
✓ Listar todas las ciudades
✓ Buscar ciudad por ID
✓ Buscar ciudades por nombre
✓ Ver: ID, Nombre, País, Fecha de actualización
PAÍSES:
✓ Listar todos los países
✓ Buscar país por ID
✓ Buscar países por nombre
✓ Ver: ID, País, Fecha de actualización
================================================================================
ARQUITECTURA:
================================================================================
CAPA DE DATOS (Data):
- Entity.java: Clase base con utilidades
- Actor.java, City.java, Coutry.java: Entidades con propiedades
CAPA DE MODELO (Model):
- EntityModel.java: Base ORM con:
* Gestión de conexiones SQL
* Preparación de statements
* Métodos de búsqueda genéricos
- ActorModel, CityModel, CoutryModel: Mapeo de resultados específicos
CAPA DE PRESENTACIÓN (Main):
- Menú interactivo
- Interfaz de usuario por consola
- Control de flujo
CAPA DE UTILIDAD (Util):
- DatabaseConnection: Factory de conexiones
================================================================================
TABLAS DE LA BD:
================================================================================
ACTOR:
- actor_id (INT, PK)
- first_name (VARCHAR)
- last_name (VARCHAR)
- last_update (TIMESTAMP)
CITY:
- city_id (INT, PK)
- city (VARCHAR)
- country_id (INT, FK)
- last_update (TIMESTAMP)
COUNTRY:
- country_id (INT, PK)
- country (VARCHAR)
- last_update (TIMESTAMP)
================================================================================
ERRORES COMUNES Y SOLUCIONES:
================================================================================
Error: "Cannot invoke PreparedStatement.executeQuery()"
→ Verifica que MySQL está ejecutándose
→ Verifica las credenciales en DatabaseConnection.java
→ Verifica que la BD sakila existe
Error: "Driver MySQL no encontrado"
→ Agrega el JAR mysql-connector-java al classpath
→ En IDE: Project > Properties > Java Build Path > Libraries
Error: "Connection refused"
→ MySQL no está ejecutándose
→ Inicia el servicio MySQL: net start MySQL80 (Windows)
================================================================================
NOTAS TÉCNICAS:
================================================================================
- El ORM es personalizado y no usa frameworks externos (Hibernate, JPA)
- Los PreparedStatements previenen inyección SQL
- La búsqueda usa LIKE con comodines (%)
- Las conexiones se cierran automáticamente al salir
================================================================================
AUTOR:
User Project
Fecha: Diciembre 2025
================================================================================
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published