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

Metodo modificar no se ejecuta en la base de datos

Buen día,

Me ha ocurrido igual que mis compañeros, el código compila sin alertas de errores en eclipse, lo tengo tal cual como en la sección "opinión del instructor" del desafío; ejecuta y aparece exitoso en la aplicación pero si cierro y vuelvo a iniciar, resulta que el cambio no se hizo en la base de datos.

Sin embargo descubrí que si modificaba todos los campos del producto nombre, descripción y cantidad entonces si se realiza el Update, pero aun no se cómo corregir esta falencia en el código; entiendo que estamos indicando al IDE que si se modifican todos los campos en la fila entonces hay Update, de lo contrario no.

Alguien podría darme alguna idea o sugerencia ?

Muchas gracias.

1 respuesta

Es posible que el problema sea que estás oprimiendo el botón modificar cuando recién modificaste un valor, es decir cuando el cursor de texto todavia está parpadeando en la casilla.

En la clase ControlDeStockframe, método modificar():

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());

el método getValueAt() del objeto modelo toma dos parámetros, el primero es el método getSelectedRow() del objeto tabla (hace referencia a la fila seleccionada, es decir la que esta en azul) y un int como segundo parametro (hace referencia a la respectiva casilla dentro de dicha fila) para poder LEER el valor de dicha casilla EN ESE MOMENTO. Para eso el valor debe de estar ya definido en la tabla pero si el cursor de texto está activo significa que aún no has modificado el valor, por tanto va a leer el valor que en ese momento esta en memoria (es decir, el valor que estaba antes de lo que estas escribiendo).

Espero te haya sido de ayuda.