Persistencia de Datos en Aplicaciones de Películas
Clase 29 de 40 • Curso Avanzado de Java SE
Contenido del curso
- 16

Interfaces Avanzadas en Java: Métodos Default y Private
10:14 - 17

Creación de Interfaces DAO en Java para Gestión de Bases de Datos
08:00 - 18
Encapsulación y Abstracción en Diseño de APIs
00:27 - 19

Diferencias entre Clases Abstractas e Interfaces en Programación
03:35 - 20
Herencia y métodos en interfaces de Java 8 y 9
00:24
- 24

Conexión a Bases de Datos con JDBC en Java
07:19 - 25
Uso de PreparedStatement para consultas con filtros en JDBC
00:20 - 26
Configuración de phpMyAdmin y XAMPP para Bases de Datos
01:05 - 27

Conexión a MySQL usando Java JDBC: Configuración y Prácticas
14:17 - 28

Conexión y Lectura de Datos con JDBC en Java
15:41 - 29

Persistencia de Datos en Aplicaciones de Películas
13:37 - 30

Inserción y Visualización de Películas Vistas en Base de Datos SQL
13:37 - 31

Generación de Reportes Diarios con Fechas en Java
02:44
- 32
Modificación de tablas y manejo de fechas en MySQL
03:00 - 33

Interfaces Funcionales en Java: Conceptos y Ejemplos Prácticos
05:25 - 34

Programación Funcional: Paradigmas y Lambdas en Java
07:28 - 35

Lambdas en Java: Sintaxis y Aplicaciones Prácticas
13:31 - 36
Elementos clickeables en interfaz gráfica
00:13 - 37

Declaración de Lambdas y Recursividad en Java
15:08 - 38

Streams y Filters en Java para Optimizar Colecciones
12:09 - 39

Uso de Lambdas y Predicados en Streams Java
10:02
¿Cómo podemos persistir el estado de las películas vistas en nuestra aplicación?
En una aplicación donde gestionamos bibliotecas de medios, como películas, series y libros, una funcionalidad crucial es la de guardar el estado de los elementos visualizados para recordar qué contenido ya ha sido consumido. Este estado debe ser persistente, es decir, debe almacenarse de manera que no se pierda al cerrar la aplicación. En este artículo, exploraremos cómo implementar esta lógica utilizando SQL y estructuras de tabla para asegurar que el marcado de "visto" de una película sea persistente.
¿Cuál es la estructura de la tabla necesaria?
Para lograr la persistencia de los datos, necesitamos una tabla en nuestra base de datos capaz de almacenar información acerca de qué contenido ha visto el usuario. Aquí presentamos los campos básicos que debe tener la tabla viewed:
- Identificador de la tabla viewed: Principalmente para el manejo interno.
- Identificador del usuario: Determinará quién ha visto qué material.
- Tipo de material (material): Identificador que diferencia películas, series, capítulos, etc.
- Identificador del elemento (elemento): Cada película, serie o capítulo tendrá un identificador único.
Estos datos nos permitirán identificar exactamente qué material ha sido visualizado por cada usuario.
¿Cómo manejar las consultas SQL para recuperar el estado de los elementos vistos?
Una parte crítica del proceso es ejecutar consultas SQL que permitan verificar si un elemento ya ha sido visto. Para lograr esto, podemos implementar un método en nuestro código que recupere el estado desde la tabla viewed. Utilizaremos declaraciones preparadas (prepared statements) para evitar problemas de inyección SQL y asegurar el funcionamiento adecuado de las consultas.
boolean getMovieViewed(int movieId) {
boolean isViewed = false; // Variable bandera
String query = "SELECT * FROM viewed WHERE id_material = ? AND id_element = ? AND id_user = ?";
try (PreparedStatement preparedStatement = connection.prepareStatement(query)) {
preparedStatement.setInt(1, 1); // Material type for movies
preparedStatement.setInt(2, movieId); // Movie identifier
preparedStatement.setInt(3, 1); // User identifier
ResultSet rs = preparedStatement.executeQuery();
if (rs.next()) {
isViewed = true;
}
} catch (SQLException e) {
e.printStackTrace(); // Manejo de errores
}
return isViewed;
}
¿Cómo asegurar que el estado del elemento sea visible al usuario?
Para que los cambios se reflejen adecuadamente en la aplicación, debemos actualizar el objeto que representa la película, serie o libro, usando el método setViewed y llamar al método getMovieViewed siempre que se incite a mostrar el estado "visto" de un elemento.
movie.setViewed(getMovieViewed(movie.getId()));
Implementando esta lógica, cada vez que abramos la aplicación, el estado de visión del usuario sobre el contenido estará correctamente cargado, mejorando la experiencia del usuario y facilitando la gestión de contenido visto.
¿Qué debemos hacer para insertar datos a la tabla Vuido?
Para completar el proceso, es necesario implementar formas de agregar entradas a la tabla viewed cuando un usuario vea un nuevo contenido. Esto nos asegurará que la visualización del contenido se registre correctamente para futuras referencias y filtros. En nuestro siguiente paso, exploraremos cómo implementar esa funcionalidad.