Skip to content

Jepuj21/proyecto-final-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

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

No packages published

Languages