JList - Deletar um valor do banco

3 respostas
lordvadher4
Olha só, eu tenho uma JList, que busca dados em um banco, e tem um botão remover. Eu quero que ele remova o item seleciondo (do banco e da JList). Aqui vai o codigo do método que contém a jList:
DefaultListModel padrao = new DefaultListModel();//modelo padrão
        jList jl_favor = new jList// chama a jlist
        jl_favor.setModel(padrao);// recebe valor padrão
        Concexao_Banco Concexao_Banco = new Concexao_Banco();//abre conexão com o banco
               
        try {
                Concexao_Banco.stm = Concexao_Banco.conexao.createStatement();
                Concexao_Banco.rs = Concexao_Banco.stm.executeQuery(
                "select * from tb_favoritos");// executa um select nu banco

                while (Concexao_Banco.rs.next()){
                        String pega = Concexao_Banco.rs.getString("URL");
                        padrao.addElement(pega);// e joga o result set nu padrão
                }    
        } catch (SQLException ex1) {
                System.out.print("Error " + ex1.getMessage());
        }
        
        try {
                Concexao_Banco.conexao.close();
        } catch (SQLException ex) {
                System.out.print("Error " + ex.getMessage());
        }
O código acima exibe os dados na jList. A tabela do banco é assim:

create table tb_favoritos(
URL varchar(255) not null key);

Agora quando o usuario selecionar um item na jList e clicar nu botão remover, este dado deve ser excluido da jlist e do banco.

Brigado pela colaboração... :)

3 Respostas

marcelo_emanoel

Vamos começar pelo começo:

[list] A tabela do banco deveria ter uma chave primaria única… de preferência um id gerado pelo próprio banco… [/list]
[list]Procure separar a lógica de acesso aos dados da lógica de apresentação… facilita bastante a sua vida e não é complicado :slight_smile: Dê uma olhada nos padrôes DAO (Data Access Object) e também em MVC (Model-View-Controller) uma procura rápida no google resolve isso rapidinho.[/list]

Agora referente ao seu problema… você vai ter que pegar o item da lista no modelo da mesma e em seguida repassar a deleção pra camada de acesso aos dados.

lordvadher4

Eu fiz isso:

Object var = jl_favor.getSelectedValue();// criei um objeto que pega o que está selecionado try { Concexao_Banco.stm = Concexao_Banco.conexao.createStatement(); Concexao_Banco.stm.execute( "delete from tb_favoritos where URL = '"+var+"'");// fiz um delete na tabela do banco } catch ((SQLException ex1) { System.out.print("" + ex1.getMessage()); }

mas não deu mto certo…

Robsonramosabrao

1º se existe um botão acionando, precisamos uasr uma interface(ActionLIstener)

2º implementar o método

public void actionPerformed(ActionEvent e){
//REMOVENDO DO BANCO
Concexao_Banco.stm.executeQuery("DELETE FROM tb_favoritos WHERE URL = '"+padrao.getSelectedItem()+"');
//REMOVENDO DA JList
padrao.removeElement(padrao.getSelectedItem());
}

Siceramente não compilei…mas é por ai…

Criado 6 de dezembro de 2007
Ultima resposta 6 de dez. de 2007
Respostas 3
Participantes 3