Exclusão por interface gráfica no JAVA DB

10 respostas
GUICS

Oi pessoal, estou criando uma aplicação simples no banco de dados JAVA DB e estou com dúvida em como excluir um usuário ou pelo id ou pelo nome... seqgue meu código, já está funcionando a função slvar e listar, excluir que não sei mesmo, já li tutorial da sun, site do netbeans e não compreendi, se alguem puder ser mais claro agradeço... segue o código principal:

public class TelaBasica extends JFrame {

    JButton salvar = new JButton("Salvar");
    JButton listar = new JButton("Listar");
    JButton excluir = new JButton("Excluir");
    JTextField autor = new JTextField();
    JLabel labelautor = new JLabel("Autor        ");
    
    JPanel painel = new JPanel();
    
    JTextField Isbn = new JTextField();
    JLabel labelIsbn = new JLabel("Isbn  ");
    
    JTextField Titulo = new JTextField();
    JLabel labelTitulo = new JLabel("Titulo  ");
    JTextField numPag = new JTextField();
    
    JPanel painel2 = new JPanel();

    public TelaBasica() {


        super("Cadastro Livro");
        setLayout(new BorderLayout());
        painel.setLayout(new FlowLayout());
        autor.setColumns(15);
        painel.add(labelautor);
        painel.add(autor);
        Isbn.setColumns(15);
        painel.add(labelIsbn);
        painel.add(Isbn);
        Titulo.setColumns(15);
        painel.add(labelTitulo);
        painel.add(Titulo);
        setLayout(new BorderLayout());
        painel2.setLayout(new FlowLayout());
        painel2.add(salvar);
        painel2.add(listar);
        painel2.add(excluir);

        salvar.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent arg0) {
                Livro obj = new Livro();
                obj.setAutor(autor.getText());
                obj.setIsbn(Isbn.getText());
                obj.setTitulo(Titulo.getText());
//              obj.setNumPaginas(numPag.getText());
                LivroJpaController jpa = new LivroJpaController();
                jpa.create(obj);
 }
        });
        listar.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent arg0) {
                LivroJpaController jpa = new LivroJpaController();
                List<Livro> lista = jpa.findLivroEntities();
                
                for (Livro l : lista) {
                    
                    System.out.println("livro:" + l.getId() + " " + l.getAutor() + " " + l.getTitulo() + " " + l.getIsbn() + "  " + l.getNumPaginas());
                }
             


            }
        });

        excluir.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent arg0) {
//                String str =JOptionPane.showInputDialog(null, "Exclusão de ID", 
//                        "Digite a ID");
//                
//Aqui o comando para pegar do banco de dados JAVA DB e excluir pegando a id 
//        digitada pelo usuário
                
            }
        });
        
        add(painel, BorderLayout.CENTER);
        add(painel2, BorderLayout.SOUTH);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(250, 250);
        setVisible(true);
    }
    
    public static void main(String[] args) {
        new TelaBasica();
    }
}

Depois de muitas noites sem dormir, me rendo ao fórum...
Desde já agradeço...

10 Respostas

Hebert_Coelho

Onde está o código de excluir?

Tem alguma mensagem de erro?

GUICS
excluir.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent arg0) {
                CadastroJpaController jpa = new CadastroJpaController();
                
                // implementar aqui a exclusão
                
                
                
                List<Cadastro> lista = jpa.findCadastroEntities();
                for (Cadastro l : lista) {
                    
                    String str;
                    str=JOptionPane.showInputDialog("Digite a ID");
                    int id=Integer.parseInt(str);
                    
                    Cadastro obj = new Cadastro();
                    obj.setID(l.getId());                     
                    System.out.println("Cliente:" + l.getId() + " " + l.getNome() + " " + l.getEndereco() + " " + l.getHosts() + "  " + l.getMac() + "  " + l.getLogin() + "  " + l.getSenha());
                    try {
                        jpa.destroy(l.getId());
                    } catch (NonexistentEntityException ex) {
                        Logger.getLogger(Aplicacao.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    
                }

Na compilação dá erro:
Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: Not yet implemented
at domain.Cadastro.setID(Cadastro.java:173)
at app.Aplicacao$3.actionPerformed(Aplicacao.java:128)

No erro Cadastro.java:173 tem:

public void setID(Long id) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

E no erro Aplicacao.java:128 tem:

Cadastro obj = new Cadastro();
                    obj.setID(l.getId());

Já vi onde está o problema, mas não sei como atrelar a id digitada pelo usuário através do comando

Cadastro obj = new Cadastro();
                    obj.setID(l.getId());
e fundir com o comando de excluir, no caso o
jpa.destroy(l.getId());
e essa linha para mim está em banho maria, não sei o que quis fazer com isso, mas algo me diz que ela existe:
Cadastro obj = new Cadastro();
                    obj.setID(l.getId());
GUICS

Correção:
Já vi onde está o problema, mas não sei como atrelar a id digitada pelo usuário através do comando

String str; str=JOptionPane.showInputDialog("Digite a ID"); int id=Integer.parseInt(str);

GUICS

Resolvi o problema...

excluir.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent arg0) {
                CadastroJpaController jpa = new CadastroJpaController();
                
                List<Cadastro> lista = jpa.findCadastroEntities();
                for (Cadastro l : lista) {
                    
                    String str;
                    str=JOptionPane.showInputDialog("Digite a ID");
                    long id1=Long.parseLong(str);
                    Cadastro obj = new Cadastro();
                    obj.setId(id1);
                    JOptionPane.showConfirmDialog(null, "Cliente Deletado: " + l.getId() + " " + l.getNome() + " " + l.getEndereco() + " " + l.getHosts() + "  " + l.getMac() + "  " + l.getLogin() + "  " + l.getSenha());
                    try {
                        jpa.destroy(l.getId());
                    } catch (NonexistentEntityException ex) {
                        Logger.getLogger(Aplicacao.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    
                }
                
                
            }
        });
GUICS

Só tem um problema, ele só exclui o menor id na tabela, por exemplo tem id 1,2,3,4 s eeu mando excluir o 4 dá erro, se mando excluir o 1 exclui.

o erro:
Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: Not yet implemented
at domain.Cadastro.getId(Cadastro.java:134)
at app.Aplicacao$3.actionPerformed(Aplicacao.java:132)

no código são: Cadastro.java:134

public Long getId(long id1) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

e Aplicacao.java:132

try {
                        jpa.destroy(l.getId(id));
                    } catch (NonexistentEntityException ex) {
                        Logger.getLogger(Aplicacao.class.getName()).log(Level.SEVERE, null, ex);
                    }
                JOptionPane.showConfirmDialog(null, "Cliente Deletado: " + l.getId() + " " + l.getNome() + " " + l.getEndereco() + " " + l.getHosts() + "  " + l.getMac() + "  " + l.getLogin() + "  " + l.getSenha());  
                    
                    break;
                }
davidbuzatto

Uai, seu getId ainda não está implementado. Na verdade está, mas no corpo do método é lançada uma UnsupportedOperationException, então quando você chamar o método, a excessão java.lang.UnsupportedOperationException: Not yet implemented (primeira linha do seu erro) vai ser lançada.

[]'s

GUICS

e como eu resolvo esse método que gerou automaticamente pelo Netbeans, o UnsupportedOperationException eu substituo pelo q?

GUICS

meu getId está implementado na classe Cadastro.java

public Long getId() {
        return id;
    }
   

    public void setId(Long id) {
        this.id = id;
    }

porém ele diz que não e gera o seguinte:

public Long getId(long id1) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

o que devo alterar?

GUICS

Deixa eu reformular minha pergunta…
Após receber uma String recebida após o usuário digitar pela interface JOptionPane, como coleto o dado digitado?
Sabendo que minha variável é do tipo Long id;

Devo converter a variável recebida pelo JOptionPane chamada str (String) para Long?

O comando para pegar essa id seria primeiramente setId(id)?
Já fiz o método setId() e getId();
Mas não estou sabendo aplicar …
Ajuda…

GUICS

Ninguém?

Criado 9 de novembro de 2011
Ultima resposta 16 de nov. de 2011
Respostas 10
Participantes 3