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

Error en UPDATE

Error en sintaxis en el statement.execute

En mi código todo parecia bien pero me generaba muchos errores y no generaba la actualización del item. les colocó como estaba mi codigo:

public class ProductoController {

    public int modificar(String nombre, String descripcion, Integer cantidad, Integer id) throws SQLException {
        Connection con = new ConnectionFactory().recuperaConexion();

        Statement statement = con.createStatement();

        statement.execute("UPDATE PRODUCTO SET "
                + " NOMBRE = '" + nombre + "'"
                + ", DESCRIPCION = '" + descripcion + "'"
                + ", CANTIDAD = " + cantidad
                + "WHERE ID = " + id); //aquí esta el error

        int updateCount = statement.getUpdateCount();

        con.close();

        return updateCount;
    }

La solución que encontré es que necesita tener un espacio antes del where para que el codigo funcione.

public class ProductoController {

    public int modificar(String nombre, String descripcion, Integer cantidad, Integer id) throws SQLException {
        Connection con = new ConnectionFactory().recuperaConexion();

        Statement statement = con.createStatement();

        statement.execute("UPDATE PRODUCTO SET "
                + " NOMBRE = '" + nombre + "'"
                + ", DESCRIPCION = '" + descripcion + "'"
                + ", CANTIDAD = " + cantidad
                + " WHERE ID = " + id); // en esta parte ya contiene el espacio antes del where

        int updateCount = statement.getUpdateCount();

        con.close();

        return updateCount;
    }

Además de que al momento de hacer la modificación debes hacer click fuera de la celda antes de presionar el botón de modificar, y ya que toda la fila este en azul puedes hacer el click en el botón.

5 respuestas
solución!

¡Hola Alfonso!

Gracias por compartir tu pregunta con nosotros. Parece que encontraste la solución a tu problema, ¡genial!

Efectivamente, el espacio antes de "WHERE" es necesario para que el código funcione correctamente. Es importante prestar atención a los detalles en la sintaxis del código para evitar errores.

También es útil saber que debes hacer clic fuera de la celda antes de presionar el botón de modificar. Gracias por compartir este consejo con nosotros.

¡Espero haber ayudado y buenos estudios!

¡Muchas gracias, me ayudó mucho tu comentario!

Gracias, buen aporte.

gracias! increíble que se haya puesto un código mal copiado y que ese espacio sea el problema

Cuando una Query no funciona la mejor manera de revisar si está escrita correctamente es verificar por consola, de esa forma nos aseguramos que está bien construida, les presento un ejemplo: donde verifico los valores recibidos y como se construye la query para hacer la actualización del registro.

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