Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

RESOLUCION SIN EL USO DE .MATH

Buenas, un gusto! Me propuse resolver este proceso antes de ver la clase, para ver como era la solucion original posteriormente y poder compararla con la mia. Aplique 100% logica, renegue un rato al principio, pero luego todo fue fluyendo. Dejo a continuacion como lo resolvi, y si algun profesor puede comentarme como fue (pese a no ser la misma solucion del video) seria de muchisimo agrado! Saludos....

public void guardar(Map<String, String> product) throws SQLException {
    Connection con = new connectionGenerate().generate();
    PreparedStatement stat = con.prepareStatement(
        "INSERT INTO PRODUCT (NAME, DESCRIPTION, NUMBEROFUNIT, CATEGORY)" + "VALUES (?, ?, ?, ?)");
    try {
      if (Integer.parseInt(product.get("NUMBEROFUNIT")) > 50) { // siempre que la cantidad del producto sea >50...
        Integer currentAmount = Integer.parseInt(product.get("NUMBEROFUNIT")); // tiene la cantidad total que restan de
        Integer arbitraryAmount; // ingresar a la base de datos luego de
        // restarle las 50 unidades maximas que
        // admite el sistema

        while (currentAmount > 50) {// mientras que la cantidad restante a ingresar siga siendo mayor que 50, se //
                                    // itera y se siguen separando las unidades.
          arbitraryAmount = (50 - currentAmount) * -1; // devuelve un valor negativo, y se lo pasa a positivo
                                                       // multiplicandolo por -1
          registerExecution(product, con, stat, 50);
          currentAmount = arbitraryAmount;
        }
        registerExecution(product, con, stat, currentAmount); // termina de cargar las cantidades restantes del producto
      } else {
        Integer currentAmount = Integer.parseInt(product.get("NUMBEROFUNIT"));
        registerExecution(product, con, stat, currentAmount);
      }
    } catch (Exception e) {
      con.rollback();
    }
    con.close();

  }
2 respuestas
solución!

¡Hola Manuel!

Es genial que hayas intentado resolver el problema por ti mismo antes de ver la solución original, ¡eso demuestra mucho interés y dedicación!

En cuanto a tu solución, parece que estás utilizando un enfoque iterativo para separar las cantidades de productos mayores a 50 en múltiples inserciones de 50 unidades o menos. Es una solución interesante y puede funcionar bien en algunos casos.

Sin embargo, es importante tener en cuenta que la solución original utilizando la función Math.ceil() puede ser más eficiente, ya que permite calcular la cantidad de inserciones necesarias de manera más precisa y en una sola línea de código.

En general, es importante encontrar un equilibrio entre la eficiencia y la legibilidad del código. En cualquier caso, ¡sigue adelante con tu aprendizaje y práctica en Java y JDBC!

¡Espero haber ayudado y buenos estudios!

Entiendo! de igual forma, mi solucion fue realizada antes de ver la clase, me puse como desafio eso para resolverlo yo solo y lograr la funcionalidad, pero como dices, hablar de optimizacion obviamente ya es otra cosa. Voy a practicar con .math, ya que nunca lo utilice! Gracias por respuesta!! saludos...