Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Duda] duda en el metodo guardar en la parte del do while

public void guardar(Map<String, String> producto) throws SQLException {
    
    String nombre = producto.get("NOMBRE");
    String descripcion = producto.get("DESCRIPCION");
    Integer cantidad = Integer.valueOf(producto.get("CANTIDAD"));
    Integer maximoCantida = 50;
    
    Connection con = new ConnectionFactory().recuperaConexion();
    
    PreparedStatement statement = con.prepareStatement("INSERT INTO PRODUCTO (nombre,descripcion,cantidad)" + " VALUES(?,?,?)",Statement.RETURN_GENERATED_KEYS);
    
    
    //metodo execute devuelve un valor boolean.
    //nos devuelve el id generado del producto insertado
    //PreparedStatement -> normaliza un string y tratar su contenido como texto para guardar la tabla.
    
    
     do {
         int cantidad_para_guardar = Math.min(cantidad, maximoCantida);
         ejecutaRegistro(nombre, descripcion, cantidad_para_guardar, statement);
         cantidad -= maximoCantida;

}while(cantidad > 0);

hola queria que me expliquen algo que no entendi en la parte del do while entiendo que en el math.min() toma el valor mas pequeño entre estos dos numeros y despues cantidad se le resta maximo de cantidad (cantidad -= maximoCantidad),mi pregunta es con la condicion del do while por que se le dice que cantidad es mayor a cero no entendi eso ,gracias.

1 respuesta

Hola Nolberto,

Sí, la lógica del ciclo do-while en este caso es bastante sencilla.

El ciclo do-while se ejecuta al menos una vez y luego continúa ejecutándose mientras la condición dentro del paréntesis de 'while' sea verdadera. En este caso, la condición es 'cantidad > 0'.

Inicialmente, la variable 'cantidad' representa la cantidad total de productos que se quieren guardar. Cada vez que se ejecuta el ciclo, se guarda una cantidad de productos (la cantidad más pequeña entre 'cantidad' y 'maximoCantidad') y luego se resta esa cantidad a 'cantidad'.

El propósito de esto es dividir el proceso de guardar productos en múltiples operaciones si la cantidad total de productos excede el límite máximo (50 en este caso). Por lo tanto, si por ejemplo tuviéramos 120 productos, se realizarían tres operaciones: dos con 50 productos y una con los 20 restantes.

La condición 'cantidad > 0' en el ciclo do-while asegura que el ciclo continúe ejecutándose hasta que todos los productos hayan sido guardados. Cuando 'cantidad' se reduce a 0, significa que todos los productos han sido guardados y el ciclo se detiene.

Espero que esto te ayude a entender mejor el código, pero no dudes en preguntar si tienes más dudas!

Espero haber ayudado y buenos estudios!