Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

[Bug] Ayuda Muchas llamadas a la base.

Hola Buenas Días, Tardes o Noches.

Me encontraba realizando la practica del video pero a la hora de ejecutar el código me mandaba muchas llamadas a la base pero no pude encontrar el error me pueden ayudar porfavor .

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

2 respuestas
solución!

Hola Jorge,

El problema de las consultas N + 1 ocurre cuando, para una funcionalidad específica, se realizan más consultas a la base de datos de las que son necesarias.

En tu caso, estás yendo a la base de datos cada vez que llamas al método cargarReporte que llama al método listar de CategoriaDAO y también cada vez que llamas al método listarPorCategoria de ProductoDAO. Esto significa que para cada categoría que estás procesando en el bucle for, estás yendo a la base de datos de productos para hacer esta búsqueda. En tu escenario, estás haciendo cinco conexiones a la base de datos.

Una solución a este problema sería aprovechar la relación que existe entre las entidades de Categoría y Producto. En lugar de hacer una consulta a la base de datos para cada categoría y luego otra consulta para cada producto de esa categoría, podrías hacer una sola consulta que obtenga todas las categorías y sus productos correspondientes. Esto reduciría significativamente el número de consultas a la base de datos.

Por ejemplo, podrías modificar tu consulta SQL para que se vea algo así:

String query = "SELECT c.ID, c.NOMBRE, p.ID, p.NOMBRE, p.DESCRIPCIÓN, p.CANTIDAD " +
               "FROM CATEGORIA c " +
               "JOIN PRODUCTO p ON c.ID = p.CATEGORIA_ID";

Esta consulta obtendría todas las categorías y productos en una sola consulta. Luego podrías procesar los resultados en tu aplicación para organizarlos en la estructura que necesitas.

Espero que esto te ayude a entender y resolver el problema. Recuerda que esta es solo una sugerencia y puede que necesites adaptarla a tus necesidades específicas.

Mucho éxito en todo lo que te propongas y si tienes alguna duda aquí estaremos para apoyarte.

¡Vamos juntos!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios.

Gracias me ayudo mucho. Excelente día.