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

Al parecer esto me funcionó, espero a los demás también.

Control de Stock frame

 private void modificar() {
    if (tieneFilaElegida()) {
        JOptionPane.showMessageDialog(this, "Por favor, elije un item");
        return;
    }

    Optional.ofNullable(modelo.getValueAt(tabla.getSelectedRow(), tabla.getSelectedColumn()))
            .ifPresentOrElse(fila -> {
                Integer id = Integer.valueOf(modelo.getValueAt(tabla.getSelectedRow(), 0).toString());
                String nombre = (String) modelo.getValueAt(tabla.getSelectedRow(), 1);
                String descripcion = (String) modelo.getValueAt(tabla.getSelectedRow(), 2);
                Integer cantidad = Integer.valueOf(modelo.getValueAt(tabla.getSelectedRow(), 3).toString());

                int filasModificadas;

                try {
                    filasModificadas = this.productoController.modificar(nombre, descripcion, id, cantidad);
                } catch (SQLException e) {
                    e.printStackTrace();
                    throw new RuntimeException(e);
                }

                JOptionPane.showMessageDialog(this, String.format("%d item modificado con éxito!", filasModificadas));
            }, () -> JOptionPane.showMessageDialog(this, "Por favor, elije un item"));
}

Public class ProductoController {

public int modificar(String nombre, String descripcion, Integer id, Integer cantidad) throws SQLException {
      ConnectionFactory factory = new ConnectionFactory();
      Connection con = factory.recuperaConexion();
    
     Statement statement = con.createStatement();
    statement.execute("UPDATE PRODUCTO SET "
            + " NOMBRE = '" + nombre + "'"
            + ", DESCRIPCION = '" + descripcion + "'"
            + ", CANTIDAD = " + cantidad
            + " WHERE ID = " + id);

    int updateCount = statement.getUpdateCount();
    
    con.close();   

    return updateCount;
}
1 respuesta

¡Hola Omar!

Gracias por compartir con nosotros.

En tu clase ProductoController, estás utilizando un objeto Statement para ejecutar una consulta SQL de actualización en tu tabla PRODUCTO. Estás pasando los valores de nombre, descripcion, id y cantidad como parámetros en tu consulta. Luego, estás obteniendo el recuento de filas actualizadas y devolviéndolo como resultado de tu método modificar().

En general, tu código parece estar en buen camino. Sin embargo, hay algunas cosas que podrías considerar:

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