[Usar seleção do jTable para excluir no banco de dados]

3 respostas
A

E ae galera blza?
eu sou novato em programação e andei pesquisando algumas formas de deletar o que esta selecionado no jtable do banco de dados. Achei aqui no site
um outro post explicando isso, só que não estou entendendo muito bem o código.

segue abaixo o código.

if(jTable1.getSelectedRow() != -1)
        {
            int linha = jTable1.getSelectedRow();
            try
            {

                Class.forName("com.mysql.jdbc.Driver");
                Connection con_tabela = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/curso", "root", "");
                Statement stm = (Statement) con_tabela.createStatement();
                String sql = "select * from cliente Where nome = "+(jTable1.getValueAt(linha, 1));
                con_Tabela.executeSQL(sql);
                con_Tabela.resultset.first();
                String nome = "Deletar o cliente : "+con_tabela.resultset.getString("nome")+" ?";
                int opcao_escolhida = JOptionPane.showConfirmDialog(null,nome,"Exclusão ",JOptionPane.YES_NO_OPTION);
                if (opcao_escolhida == JOptionPane.YES_OPTION)
                {
                    sql = "DELETE FROM produto Where codigo = "+(jTable1.getSelectedRow()!= -1);
                    int conseguiu_excluir = con_Tabela.statement.executeUpdate(sql);
                    if (conseguiu_excluir == 1)
                    {
                        JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso");
                    }
                }
                else
                return;
            }
            catch (SQLException e)
            {
                JOptionPane.showMessageDialog(null,"Erro a tentar excluir o registro...");
            }
        }
        else
        {
          JOptionPane.showMessageDialog(null,"Selecione um nome para excluir");
        }

o que seria esse con_tabela?
o codigo faz a seguinte instrução?
[pessoa seleciona a linha e depois clica em excluir e sistema exclui a linha]

gostaria da ajuda de vocês ae, vlw!

3 Respostas

R

con_tabela é a sua conexão com o banco.

Voce executa um sql pedindo o produto pelo codigo

String sql = "select * from cliente Where nome = "+(jTable1.getValueAt(linha, 1));

e depois executa um sql para deletar o produto

sql = "DELETE FROM produto Where codigo = "+(jTable1.getSelectedRow()!= -1);

mas ao inves de informar o codigo vc passa o objeto produto

//Troque isto
sql = "DELETE FROM produto Where codigo = "+(jTable1.getSelectedRow()!= -1);
//por isso
sql = "DELETE FROM produto Where codigo = "+(jTable1.getValueAt(linha, 1));
A

vlw brother, testei aqui e deu problema nessas linhas

con_tabela.executeSQL(sql); con_tabela.resultset.first();
na ultima linha do primeiro codigo q passei também deu erro.

A

Resolvido!
Vo postar aqui:

if (jTable1.getSelectedRow() != -1) {
            int linha = jTable1.getSelectedRow();
            try {

                Class.forName("com.mysql.jdbc.Driver");
                Connection con_tabela = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/agencia", "root", "");
                Statement stm = (Statement) con_tabela.createStatement();
                String sql = null;


                String nome = "Deletar o cliente de CPF: " + jTable1.getValueAt(linha, 2).toString() + " ?";
                int opcao_escolhida = JOptionPane.showConfirmDialog(null, nome, "Exclusão ", JOptionPane.YES_NO_OPTION);
                if (opcao_escolhida == JOptionPane.YES_OPTION) {
                    sql = "select * from cliente Where CPF = " + (jTable1.getValueAt(linha, 2));
                    int conseguiu_excluir = stm.executeUpdate("DELETE FROM cliente  WHERE CPF='" + (jTable1.getValueAt(linha, 2).toString()) + "'");

                    if (conseguiu_excluir == 1) {
                        model.removeRow(linha);
                        jTable1.setModel(model);
                        JOptionPane.showMessageDialog(null, "Exclusão realizada com sucesso");
                    }
                } else {
                    return;
                }
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, "Erro a tentar excluir o registro...");
            } catch (ClassNotFoundException e) {
            }
        } else {
            JOptionPane.showMessageDialog(null, "Selecione um nome para excluir");
        }

vlw

Criado 20 de maio de 2011
Ultima resposta 25 de mai. de 2011
Respostas 3
Participantes 2