CRUD con MVC y POO en Java y MySQL

Iniciado por padiuwu, 17 Abril 2019, 04:54 AM

0 Miembros y 1 Visitante están viendo este tema.

padiuwu

Tengo la siguiente situación en el proyecto que estoy trabajando, cuando paso los datos de un Jtable a un formulario y deseo modificar los datos, al momento de cambiar la información y por siguiente de presionar el botón EDITAR los datos no se modifican, aquí anexo los fragmentos de código en el primero se muestra la consulta sql para actualizar y el segundo fragmento de código es parte de mi controlador donde le mando las acciones al botón EDITAR, agrego que cuando presiono el botón EDITAR me aparece el mensaje "SURGIO UN ERROR AL ACTUALIZAR":

//Fragmento de codigo de mi paquete Modelo 
//Metodo actualizar
    @Override
    public void actualizar(Object objeto) throws Exception {
        ModeloProducto producto = (ModeloProducto) objeto;

        try{

            // Abrir conexion
            this.connect();

            String sql = "UPDATE productos SET nombre = ?, codigo = ?, descripcion = ?, precio = ?, stock = ?, status = ? WHERE idProducto = idProducto;";

            this.sqlConsulta = this.conexion.prepareStatement(sql);

            this.sqlConsulta.setInt(1, producto.getId());
            this.sqlConsulta.setString(2, producto.getNombre());
            this.sqlConsulta.setString(3, producto.getCodigo());
            this.sqlConsulta.setString(4, producto.getDescripcion());
            this.sqlConsulta.setFloat(5, producto.getPrecio());
            this.sqlConsulta.setInt(6, producto.getStock());
            this.sqlConsulta.setInt(7, 1);

            // Executa consulta y Cerrar conexion
            this.sqlConsulta.executeUpdate();
        }
        catch(SQLException e){
            System.err.println("SURGIO UN ERROR AL ACTUALIZAR");
        }
        this.desconectar();
    }

//Fragemento de codigo de mi paquete controlador ACCIONES DE LOS BOTONES
if (e.getSource() == this.forminventario.btnEditar) {
            try {

                producto.setId(Integer.parseInt(forminventario.txtId.getText()));
                producto.setCodigo(forminventario.txtCodigo.getText());
                producto.setNombre(forminventario.txtNombre.getText());
                producto.setDescripcion(forminventario.txtDescripcion.getText());
                producto.setPrecio(Float.parseFloat(forminventario.txtPrecio.getText()));
                producto.setStock(Integer.parseInt(forminventario.txtStock.getText()));

                dbproducto.actualizar(producto);
                JOptionPane.showMessageDialog(forminventario, "¡REGISTRO ACTUALIZADO!");
                clean();
                this.cargarTabla("");

            } catch (Exception ex) {
                Logger.getLogger(ControladorProducto.class.getName()).log(Level.SEVERE, null, ex);
            }

        }

rub'n

#1
Que tal dog,

Ya está supera la segunda ves de que uses geshi

Código (java) [Seleccionar]
try{

           // Abrir conexion
           this.connect();

           String sql = "UPDATE productos SET nombre = ?, codigo = ?, descripcion = ?, precio = ?, stock = ?, status = ? WHERE idProducto = idProducto;";

           this.sqlConsulta = this.conexion.prepareStatement(sql);

           this.sqlConsulta.setInt(1, producto.getId());
           this.sqlConsulta.setString(2, producto.getNombre());
           this.sqlConsulta.setString(3, producto.getCodigo());
           this.sqlConsulta.setString(4, producto.getDescripcion());
           this.sqlConsulta.setFloat(5, producto.getPrecio());
           this.sqlConsulta.setInt(6, producto.getStock());
           this.sqlConsulta.setInt(7, 1);

           // Executa consulta y Cerrar conexion
           this.sqlConsulta.executeUpdate();
       }
       catch(SQLException e){
           System.err.println("SURGIO UN ERROR AL ACTUALIZAR");
       }



Has, esto para ver la stack completa de la exception


Código (java) [Seleccionar]
ex.printStackTrace();

también cierra el prepareStatement luego del update  
Código (java) [Seleccionar]


this.sqlConsulta.executeUpdate();
this.sqlConsulta.close(); //para cerrar el prepareStatement


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen