Contenido del curso
CRUD
- 7

Creación de Proyectos Java con Maven y Gestión de Dependencias
05:23 min - 8

Try-with-resources para cerrar conexiones JDBC
07:05 min - 9

Patrón DAO vs Repository en Java
03:12 min - 10

Patrón Repository con Singleton en Java
11:18 min - 11

Patrón Repository con JDBC en Java
20:24 min - 12

Insertar datos en MySQL con PreparedStatement
12:01 min - 13

Método delete en JDBC con PreparedStatement
07:00 min - 14

Interfaz gráfica de CRUD con Java Swing
10:01 min
Transacciones
Conexiones Pool
JPA y ORM
Próximos pasos
Clon de Netflix con JDBC o JPA
Resumen
¿Te animas a llevar todo lo aprendido a un proyecto real? El reto es construir un clon de Netflix en Java usando JDBC o JPA, conectando varias tablas relacionales y aplicando patrones de diseño como repository o DAO. Es ideal si quieres practicar conexiones a bases de datos, CRUDs y optimización con pool de conexiones en un caso cercano a la industria.
¿Cómo estructurar la base de datos del clon de Netflix?
La idea central es dejar atrás la tabla única y modelar una base de datos relacional con varias entidades que se comuniquen entre sí. Aquí cambia el juego: ya no trabajas con un CRUD plano, trabajas con relaciones.
Una propuesta de estructura incluye tres tablas principales:
- Películas: con nombre, número de estrellas y año.
- Categorías: con nombre de la categoría y clasificación.
- Directores: con nombre, país de origen y si ganó un Óscar.
Las películas se ligan tanto a categorías como a directores, así que tendrás que pensar en llaves foráneas y en cómo recuperar esa información cuando consultes. Si usas JPA, esto se traduce en anotaciones de relación; si vas con JDBC, en joins manuales dentro de tus consultas SQL.
¿Qué tablas necesito para clonar Netflix? Mínimo tres: Películas, Categorías y Directores. Películas funciona como tabla central que se relaciona con las otras dos mediante llaves foráneas.
¿Qué métodos del CRUD cambian en este proyecto?
Aquí viene lo interesante: no todos los métodos del CRUD aplican igual que en un proyecto genérico. Netflix no te deja insertar una película desde la app ni eliminarla, así que tu repositorio debe reflejar esa lógica de negocio.
Los métodos que sí tienen sentido implementar son los de búsqueda especializada:
- Buscar películas por director.
- Buscar películas por clasificación.
- Buscar películas por categoría.
En lugar de un findAll o un delete sin criterio, piensa en consultas que respondan a cómo realmente navega un usuario por un catálogo. Esto te obliga a escribir queries más ricas, ya sea con JPQL en JPA o con PreparedStatement en JDBC.
¿Puedo eliminar películas en este reto? No. La consigna es respetar la lógica de Netflix: el catálogo no se modifica desde el cliente, solo se consulta con filtros como director, categoría o clasificación.
¿Qué patrones y optimizaciones debes aplicar?
Durante el curso ya implementaste un CRUD usando el patrón repository, y también conociste el patrón DAO. Cualquiera de los dos te sirve para este reto, lo importante es que separes la lógica de acceso a datos del resto de tu aplicación.
Además, recuerda aplicar un pool de conexiones para optimizar recursos. En lugar de abrir y cerrar conexiones cada vez que consultas el catálogo, el pool reutiliza conexiones existentes, lo que reduce latencia y mejora el rendimiento cuando hay múltiples consultas seguidas.
Puedes implementar el reto con dos caminos:
- JDBC: control total sobre el SQL, ideal si quieres entender qué pasa por debajo.
- JPA: menos código repetitivo, manejo automático de relaciones y entidades.
La recomendación es que personalices el proyecto a tu gusto: cambia los campos, agrega tablas como Vistas para registrar reproducciones, o suma nuevos filtros de búsqueda. Comparte tu versión en los comentarios y compárala con la solución que encuentras en los recursos.
Ya sabes cómo conectar Java a una base de datos relacional con JDBC y JPA, cómo aplicar repository o DAO, y cómo optimizar con pool de conexiones. ¿Te gustaría que el siguiente paso sea un curso de API REST con Java? Cuéntamelo en los comentarios y no olvides presentar tu examen o proyecto para obtener tu certificado.