Olá, sou novo aqui e não sei se já responderam essa duvida, mas não achei, enfim gostaria de uma ajudinha…
Tenho um projeto de criar uma aplicação JAVA com conexão a um banco de dados de dados para controle de clientes para uma empresa fictícia, e estou tendo dificuldade na hora de excluir um registro numa jTable após buscar os registro por um comando SELECT na classe DAO. Criei um jPopUpMenu para após selecionar um cliente, eu poder selecionar “Excluir” ou “Alterar”, mas quando clico em um dos dois, aparece “Tabela não selecionada”, uma frase q coloquei para algum erro, mas não sei q erro está dando. O codigo de DELETE no DAO está certo, mas não sei o que é, aqui vai o código para poderem me ajudar…
Aqui o códio da tela de consulta/excluir/alterar clientes:
[code]public class ConsultarCliente extends javax.swing.JFrame {
DefaultTableModel modelo;
public ConsultarCliente() {
initComponents();
modelo = (DefaultTableModel) jTablePesquisa.getModel();
jTablePesquisa.setAutoCreateRowSorter(true);
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
atualizaTabela();
}
private void jTablePesquisaMouseReleased(java.awt.event.MouseEvent evt) {
if (evt.isPopupTrigger()) {
jPopupMenu1.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
private void mnuAlterarActionPerformed(java.awt.event.ActionEvent evt) {
atualizaTabela("Alterar");
}
private void mnuExcluirActionPerformed(java.awt.event.ActionEvent evt) {
atualizaTabela("Excluir");
}
private void atualizaTabela() {
String busca = txtBusca.getText();
DAO listaClientes = new DAO();
ResultSet resultado = listaClientes.selectDados(busca);
jTablePesquisa.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTablePesquisa.getColumnModel().getColumn(0).setPreferredWidth(30);
jTablePesquisa.getColumnModel().getColumn(1).setPreferredWidth(170);
jTablePesquisa.getColumnModel().getColumn(2).setPreferredWidth(90);
jTablePesquisa.getColumnModel().getColumn(3).setPreferredWidth(120);
jTablePesquisa.getColumnModel().getColumn(4).setPreferredWidth(200);
modelo.setRowCount(0);
try {
while (resultado.next()) {
String codigo = resultado.getString("CODIGO");
String nome = resultado.getString("NOME");
String sobrenome = resultado.getString("SOBRENOME");
String datansc = resultado.getString("DATANSC");
String email = resultado.getString("EMAIL");
String cpf = Integer.toString (resultado.getInt("CPF"));
String cnpj = Integer.toString (resultado.getInt("CNPJ"));
String login = resultado.getString("LOGIN");
String senha = resultado.getString("SENHA");
String sexo = resultado.getString("SEXO");
modelo.addRow(new String[] {codigo, nome, sobrenome, datansc, email, cpf, cnpj, login, senha, sexo});
}
listaClientes.fechaConexão();
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);
}
}
public void atualizaTabela(String action) {
int cod = 0;
int row = 0;
int col = 0;
try {
row = jTablePesquisa.getSelectedRow();
cod = Integer.parseInt(jTablePesquisa.getValueAt(row, col).toString());
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Tabela não selecionada!", "Atenção", JOptionPane.INFORMATION_MESSAGE);
return;
}
if (action.equals("Alterar")) {
AtualizaCliente alterarCliente = new AtualizaCliente(cod, this);
this.setVisible(false);
alterarCliente.setVisible(true);
} else if (action.equals("Excluir")) {
DAO excluirCliente = new DAO();
modelo.removeRow(row);
excluirCliente.excluir(cod);
}
}
[/code]
Classe DAO na parte de DELETE:
[code]public void excluir(int cod) {
acesso = new DatabaseConnection("usuario","senha");
String cmdSQL = "DELETE FROM cliente WHERE CPF = " + cod;
try {
acesso.getStmt().executeUpdate(cmdSQL);
} catch (SQLException e) {
acesso.show("Erro SQL :" + e.getMessage());
}
acesso.fechaConexão();[/code]