elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Alguien que me pueda ayudar con lo siguiente .CRUD con MVC y POO en Java y MySQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Alguien que me pueda ayudar con lo siguiente .CRUD con MVC y POO en Java y MySQL  (Leído 1,979 veces)
padiuwu

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Alguien que me pueda ayudar con lo siguiente .CRUD con MVC y POO en Java y MySQL
« en: 23 Abril 2019, 05:44 am »

Estoy trabajando en proyecto de JAVA con MySQL con MVC, y me ha surgido el siguiente problema. Tengo dos botones para realizar la acción actualizar. Primero, presiono un registro de la tabla y de ahí el botón BUSCAR para que el id del registro aparezca en el formulario.

Después de esto, lleno todos los campos que quiero editar y, al presionar el botón EDITAR, me aparece el mensaje surgió un error al actualizar y otro error com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '13' for key 'PRIMARY'.
Código
  1. if (e.getSource() == this.forminventario.btnBuscar) {
  2.        int filaEditar = this.forminventario.tbProducto.getSelectedRow();
  3.        int numfilas = this.forminventario.tbProducto.getSelectedRowCount();
  4.  
  5.        if(filaEditar>=0 && numfilas==1){
  6.            this.forminventario.txtId.setText(String.valueOf(this.forminventario.tbProducto.getValueAt(filaEditar, 0)));
  7.  
  8.            this.forminventario.btnBuscar.setEnabled(false);
  9.            this.forminventario.btnEditar.setEnabled(true);
  10.            this.forminventario.btnEliminar.setEnabled(false);
  11.            this.forminventario.btnGuardar.setEnabled(false);
  12.            this.forminventario.btnImprimir.setEnabled(false);
  13.            this.forminventario.btnRefrescar.setEnabled(false);
  14.            this.forminventario.btnRetirar.setEnabled(false);
  15.        } else
  16.            JOptionPane.showMessageDialog(null, "SELECCIONE UN REGISTRO");
  17.    }
  18.  
  19. if (e.getSource() == forminventario.btnEditar) {
  20.        try {
  21.               int id = Integer.parseInt(this.forminventario.txtId.getText());
  22.               String codigo = this.forminventario.txtCodigo.getText();
  23.               String nombre = this.forminventario.txtNombre.getText();
  24.               String descripcion = this.forminventario.txtDescripcion.getText();
  25.               float precio = Float.parseFloat(this.forminventario.txtPrecio.getText());
  26.               int stock = Integer.parseInt(this.forminventario.txtStock.getText());
  27.  
  28.               dbproducto.actualizar(producto);
  29.               clean();
  30.               JOptionPane.showMessageDialog(forminventario, "¡REGISTRO ACTUALIZADO!");
  31.  
  32.            //this.cargarTabla("");
  33.            this.forminventario.btnBuscar.setEnabled(true);
  34.            this.forminventario.btnEditar.setEnabled(false);
  35.            this.forminventario.btnEliminar.setEnabled(true);
  36.            this.forminventario.btnGuardar.setEnabled(true);
  37.            this.forminventario.btnImprimir.setEnabled(true);
  38.            this.forminventario.btnRefrescar.setEnabled(true);
  39.            this.forminventario.btnRetirar.setEnabled(true);
  40.  
  41.        } catch (Exception ex) {
  42.            Logger.getLogger(ControladorProducto.class.getName()).log(Level.SEVERE, null, ex);
  43.        }
  44.  
  45.    }
  46.  
  47. //Metodo actualizar
  48. @Override
  49. public void actualizar(Object objeto) throws Exception {
  50.    ModeloProducto producto = (ModeloProducto) objeto;
  51.  
  52.    try {
  53.  
  54.        this.connect();
  55.  
  56.        String sql = "UPDATE productos SET idProducto = ?, nombre = ?, codigo = ?, descripcion = ?, precio = ?, stock = ?;";
  57.  
  58.        this.sqlConsulta = this.conexion.prepareStatement(sql);
  59.  
  60.        this.sqlConsulta.setInt(1, producto.getId());
  61.        this.sqlConsulta.setString(2, producto.getNombre());
  62.        this.sqlConsulta.setString(3, producto.getCodigo());
  63.        this.sqlConsulta.setString(4, producto.getDescripcion());
  64.        this.sqlConsulta.setFloat(5, producto.getPrecio());
  65.        this.sqlConsulta.setInt(6, producto.getStock());
  66.        //this.sqlConsulta.setInt(7, 1);
  67.  
  68.        // Executa consulta y Cerrar conexion
  69.        this.sqlConsulta.executeUpdate();
  70.  
  71.    } catch (SQLException e) {
  72.        System.err.println("SURGIO UN ERROR AL ACTUALIZAR");
  73.    }
  74.  
  75.    this.desconectar();
  76. }


En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Alguien que me pueda ayudar con lo siguiente .CRUD con MVC y POO en Java y MySQL
« Respuesta #1 en: 23 Abril 2019, 07:31 am »

Sugiero probar esto:
que en vez de hacer UPDATE y un monton de set, hagas set a todos los campos menos al campo id (que supongo es la unico campo que es la llave primaria de esa tabla), y que ese campo id sea parte de la condicion where, que no incluyes, asi que sugiero incluirla.

UPDATE SET campo1 = ?, campo2 = ?, ...
WHERE id = ?


En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
padiuwu

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Alguien que me pueda ayudar con lo siguiente .CRUD con MVC y POO en Java y MySQL
« Respuesta #2 en: 23 Abril 2019, 18:30 pm »

He realizado lo que me sugeriste y ya no me marca un error y me dice que el registro se ha realizado correctamente pero no se actualiza.
Código
  1. //Metodo actualizar
  2.    @Override
  3.    public void actualizar(Object objeto) throws Exception {
  4.        ModeloProducto producto = (ModeloProducto) objeto;
  5.  
  6.        try {
  7.  
  8.            this.connect();
  9.  
  10.            String sql = "UPDATE productos SET nombre = ?, codigo = ?, descripcion = ?, precio = ?, stock = ? WHERE idProducto = ?;";
  11.  
  12.            this.sqlConsulta = this.conexion.prepareStatement(sql);
  13.  
  14.            //this.sqlConsulta.setInt(1, producto.getId());
  15.            this.sqlConsulta.setString(1, producto.getNombre());
  16.            this.sqlConsulta.setString(2, producto.getCodigo());
  17.            this.sqlConsulta.setString(3, producto.getDescripcion());
  18.            this.sqlConsulta.setFloat(4, producto.getPrecio());
  19.            this.sqlConsulta.setInt(5, producto.getStock());
  20.            this.sqlConsulta.setInt(6, producto.getId());
  21.  
  22.            // Executa consulta y Cerrar conexion
  23.            this.sqlConsulta.executeUpdate();
  24.            this.sqlConsulta.close();
  25.  
  26.        } catch (SQLException e) {
  27.            System.err.println("SURGIO UN ERROR AL ACTUALIZAR");
  28.            e.printStackTrace();
  29.        }
  30.  
  31.        this.desconectar();
  32.  
  33.    }
En línea

CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: Alguien que me pueda ayudar con lo siguiente .CRUD con MVC y POO en Java y MySQL
« Respuesta #3 en: 23 Abril 2019, 19:08 pm »

Como haces para saber que no se actualiza?
tal vez es que te falta cerrar la conexion (no el preparedStatement, solamente sino tambien la conexion)?

(Sugiero elimina los "this." de cada linea donde aparecen. Son superfluos alli)
En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda !!!! Alguien que me pueda ayudar TT
Multimedia
Gotten 1 1,729 Último mensaje 16 Agosto 2006, 21:24 pm
por .hack//
Alguien q me pueda ayudar?
Ingeniería Inversa
alegriahoy 3 3,596 Último mensaje 21 Febrero 2009, 20:12 pm
por Revolutions
¿Alguien de forocoches que me pueda ayudar?
Foro Libre
blacklove24 0 1,547 Último mensaje 4 Marzo 2012, 22:35 pm
por blacklove24
CRUD con MVC y POO en Java y MySQL
Java
padiuwu 1 2,461 Último mensaje 17 Abril 2019, 11:08 am
por rub'n
CRUD Laravel 8 y AJAX
Desarrollo Web
proteus8 1 2,541 Último mensaje 4 Enero 2021, 20:24 pm
por proteus8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines