Foro de elhacker.net

Programación => Java => Mensaje iniciado por: padiuwu en 17 Abril 2019, 04:54 am



Título: CRUD con MVC y POO en Java y MySQL
Publicado por: padiuwu en 17 Abril 2019, 04:54 am
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":

Código:
//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);
            }

        }


Título: Re: CRUD con MVC y POO en Java y MySQL
Publicado por: rub'n en 17 Abril 2019, 11:08 am
Que tal dog,

Ya está supera la segunda ves de que uses geshi
(https://3.bp.blogspot.com/-O6qDroNEzts/W8sWHPnV3MI/AAAAAAAADJw/mypp_PTYxbA_uKr7E-O-x0epDjSUdk3mwCK4BGAYYCw/s1600/geshi.gif)

Código
  1. try{
  2.  
  3.            // Abrir conexion
  4.            this.connect();
  5.  
  6.            String sql = "UPDATE productos SET nombre = ?, codigo = ?, descripcion = ?, precio = ?, stock = ?, status = ? WHERE idProducto = idProducto;";
  7.  
  8.            this.sqlConsulta = this.conexion.prepareStatement(sql);
  9.  
  10.            this.sqlConsulta.setInt(1, producto.getId());
  11.            this.sqlConsulta.setString(2, producto.getNombre());
  12.            this.sqlConsulta.setString(3, producto.getCodigo());
  13.            this.sqlConsulta.setString(4, producto.getDescripcion());
  14.            this.sqlConsulta.setFloat(5, producto.getPrecio());
  15.            this.sqlConsulta.setInt(6, producto.getStock());
  16.            this.sqlConsulta.setInt(7, 1);
  17.  
  18.            // Executa consulta y Cerrar conexion
  19.            this.sqlConsulta.executeUpdate();
  20.        }
  21.        catch(SQLException e){
  22.            System.err.println("SURGIO UN ERROR AL ACTUALIZAR");
  23.        }


Has, esto para ver la stack completa de la exception


Código
  1. ex.printStackTrace();

también cierra el prepareStatement luego del update  
Código
  1.  
  2. this.sqlConsulta.executeUpdate();
  3. this.sqlConsulta.close(); //para cerrar el prepareStatement
  4.