Alterar Valores - Java com sql e JFrame

Olá amigos Boa Noite !

Estou desenvolvendo um programa simples de controle básico de supermercado usando JFrame no netbeans.
No programa tenho apenas as ações de um “crud” (inserir, deletar, alterar, buscar) de uma entidade inicial (produto) pra testar se esta tudo ok, depois irei adaptar aos demais.

Estava acompanhando um video aula, tudo ok . Conseguir fazer tudo certo, exceto a função do crud update.
Não estou conseguindo atualizar os dados no banco de dados.
O restante esta 100%.
A estrutra básica de “chamar” a conexão esta ok, mas não consigo chamar a tela do produto que foi inserido e torna-se “visible true”.
Já procurei bastante apostilas e dicas, nada.
(é só essa parte mesmo do update, pois o restante esta rodando 100% (db, connection, etc))
Peço ajuda , Grato!!
:slight_smile: :idea:

Post o seu código amigo … qual o problema que está dando ? lança alguma exceção ? O que é que há velhinho ?

Rapaz seguinte, eu realmente não sei como atualzar, ou seja, não fiz nada dessa parte de update.
Mas vou inserir o código todo aqui:


package Supermercado.Tela;

import com.mysql.jdbc.Connection;
import java.awt.Toolkit;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

public class Tela_Produto_Consulta extends javax.swing.JFrame {

    public Tela_Produto_Consulta() {
        initComponents();
        setIcon();
        
    }
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel_Principal = new javax.swing.JPanel();
        jPanel_Menu = new javax.swing.JPanel();
        jLabel_Principal = new javax.swing.JLabel();
        jLabel_Produtos = new javax.swing.JLabel();
        jLabel_Venda = new javax.swing.JLabel();
        jLabel_Sair = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jLabel1 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("iVendas - Principal");
        setBounds(new java.awt.Rectangle(0, 0, 0, 0));
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

        jPanel_Principal.setToolTipText("");
        jPanel_Principal.setName(""); // NOI18N
        jPanel_Principal.setPreferredSize(new java.awt.Dimension(720, 460));

        jPanel_Menu.setBackground(new java.awt.Color(255, 255, 255));

        jLabel_Principal.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel_Principal.setIcon(new javax.swing.ImageIcon("C:\\Users\\arthur\\Desktop\\workspace\\supermercado\\src\\Supermercado\\Tela\\img\\principal.png")); // NOI18N
        jLabel_Principal.setText("Principal");
        jLabel_Principal.setIconTextGap(3);
        jLabel_Principal.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabel_PrincipalMouseClicked(evt);
            }
        });

        jLabel_Produtos.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel_Produtos.setIcon(new javax.swing.ImageIcon("C:\\Users\\arthur\\Desktop\\workspace\\supermercado\\src\\Supermercado\\Tela\\img\\produto.png")); // NOI18N
        jLabel_Produtos.setText("Produto");
        jLabel_Produtos.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabel_ProdutosMouseClicked(evt);
            }
        });

        jLabel_Venda.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel_Venda.setIcon(new javax.swing.ImageIcon("C:\\Users\\arthur\\Desktop\\workspace\\supermercado\\src\\Supermercado\\Tela\\img\\compras.png")); // NOI18N
        jLabel_Venda.setText("Venda");
        jLabel_Venda.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabel_VendaMouseClicked(evt);
            }
        });

        jLabel_Sair.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel_Sair.setIcon(new javax.swing.ImageIcon("C:\\Users\\arthur\\Desktop\\workspace\\supermercado\\src\\Supermercado\\Tela\\img\\sair.png")); // NOI18N
        jLabel_Sair.setText("Sair");
        jLabel_Sair.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabel_SairMouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel_MenuLayout = new javax.swing.GroupLayout(jPanel_Menu);
        jPanel_Menu.setLayout(jPanel_MenuLayout);
        jPanel_MenuLayout.setHorizontalGroup(
            jPanel_MenuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel_MenuLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel_Principal)
                .addGap(18, 18, 18)
                .addComponent(jLabel_Produtos)
                .addGap(18, 18, 18)
                .addComponent(jLabel_Venda)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabel_Sair)
                .addContainerGap())
        );
        jPanel_MenuLayout.setVerticalGroup(
            jPanel_MenuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel_MenuLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel_MenuLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel_Principal)
                    .addComponent(jLabel_Produtos)
                    .addComponent(jLabel_Venda)
                    .addComponent(jLabel_Sair))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Consulta de Produtos"));

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null},
                {null, null, null, null, null, null}
            },
            new String [] {
                "Nome", "Código", "Fornecedor", "Descrição", "Quantidade Estoque", "Quantidade Venda"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        jLabel1.setText("Nome");

        jButton1.setText("Consultar");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("Excluir");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton3.setText("Alterar");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 668, Short.MAX_VALUE)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jTextField1)))
                .addContainerGap())
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(80, 80, 80)
                .addComponent(jButton1)
                .addGap(110, 110, 110)
                .addComponent(jButton3)
                .addGap(99, 99, 99)
                .addComponent(jButton2)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jButton2)
                    .addComponent(jButton3))
                .addContainerGap(76, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPanel_PrincipalLayout = new javax.swing.GroupLayout(jPanel_Principal);
        jPanel_Principal.setLayout(jPanel_PrincipalLayout);
        jPanel_PrincipalLayout.setHorizontalGroup(
            jPanel_PrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel_PrincipalLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
            .addComponent(jPanel_Menu, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        jPanel_PrincipalLayout.setVerticalGroup(
            jPanel_PrincipalLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel_PrincipalLayout.createSequentialGroup()
                .addComponent(jPanel_Menu, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel_Principal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel_Principal, javax.swing.GroupLayout.DEFAULT_SIZE, 521, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>                        

    private void jLabel_PrincipalMouseClicked(java.awt.event.MouseEvent evt) {                                              
        
    }                                             

    private void jLabel_SairMouseClicked(java.awt.event.MouseEvent evt) {                                         
        System.exit(0);
    }                                        

    private void jLabel_ProdutosMouseClicked(java.awt.event.MouseEvent evt) {                                             
        new Tela_Produto_Inserir().setVisible(true);
    }                                            

    private void jLabel_VendaMouseClicked(java.awt.event.MouseEvent evt) {                                          
        
    }                                         

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con;
            try {
                con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/dbjava","root", "");
                String select_consulta = "SELECT *FROM produto WHERE nome = ?";
                PreparedStatement cmd;
                cmd = con.prepareStatement(select_consulta);
                cmd.setString(1, jTextField1.getText());
                
                
                ResultSet rs;
                rs=cmd.executeQuery();
                
                DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
                model.setNumRows(0);
                
                
                while (rs.next()){
                    model.addRow(new Object []{
                        rs.getString("nome"), 
                        rs.getString("codigo"), 
                        rs.getString("fornecedor"), 
                        rs.getString("descricao"), 
                        rs.getString("quantidade_estoque"), 
                        rs.getString("quantidade_venda")
                    
                    });
                }
                
            } catch (SQLException ex) {
                System.out.println("erro sql");
            }
        } catch (ClassNotFoundException ex) {
            System.out.println("erro classe");
        }
        
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try {
            Class.forName("com.mysql.jdbc.Driver");
            
            Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/dbjava","root", "");
            
            String query = "DELETE FROM produto WHERE nome = ?";
            
            PreparedStatement cmd = con.prepareStatement(query);
            
            String index;
            index = (String) jTable1.getModel().getValueAt(jTable1.getSelectedRow(), 0);
            
            cmd.setString(1,index);
            cmd.executeUpdate();
            
        } catch (ClassNotFoundException ex) {
            System.out.println("erro classe sql");
        } catch (SQLException ex) {
            System.out.println("erro sql");
        }
    }                                        

    @SuppressWarnings("empty-statement")
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         

    }                                        

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Tela_Produto_Consulta().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel_Principal;
    private javax.swing.JLabel jLabel_Produtos;
    private javax.swing.JLabel jLabel_Sair;
    private javax.swing.JLabel jLabel_Venda;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel_Menu;
    private javax.swing.JPanel jPanel_Principal;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration                   

    private void setIcon() {
        setIconImage(Toolkit.getDefaultToolkit().getImage(getClass ().getResource("icone.png")));
    }

}

Fiz o alterar junto com a tela de Consulta
e tenho apenas duas telas, por enquanto, Produto_Inserir e Produto_Consultar (que também altera e exclui).
O jButton3 que é Alterar;
ok obrigado cara!

alguém por favor me ajuda