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.