Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
4
respuestas

No realiza el UPDATE

Profe, necesito ayuda, no esta realizando el UPDATE. si me toma cuando borro en la interfaz grafica pero no esta realizando el update.

![](Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad )

4 respuestas

Ya pude hacerlo andar, me modifica bien en la interfaz, pero cuando lo cierro y lo abro de nuevo vuelve el valor inicial, digamos es como que no realiza el update.

![](Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad )

![](![](Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad ))

Hola Jorge, espero que esté bien!

La consola muestra que el error está al lado del 'WHERE...' y es porque no hay espacio entre la variable cantidad y el comando WHERE, hacendo el valor de cantidad quedar junto al WHERE, por lo que no se puede entender el código.

Saludos y buenos estudios!

Si SI luego me di cuenta de ese error. ya funciona el Update!!!!!!!!!!!!!1 GRaciasssssssssssssssssss

:(, perdon, si realiza el Update en la interfaz, pero cuando la cierro y vuelvo abrir la interfaz la actualizacion que realizo no esta, es como que si le falara un commit en algun lado.

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, cantidad, id);
                } 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 cantidad, Integer id) 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;
}