JFrame + JPA + Banco de dados

4 respostas
rodrigofs80

Olá amigos!

Tenho um problema e conto com a ajuda de vcs.

Seguinte: Criei um projeto em JFrame, usando JButtons, JTextField, JPA, etc.

Bem, é um trabalho de cadastro básico. Incluir, alterar e excluir dados no banco.

A coisa tem que funcionar da seguinte maneira:

Incluir: Digito alguma coisa nos JTextFields e clico em Salvar e as informações são salvas na banco.

Excluir: Clico no botão excluir e informo o ID do produto que desejo excluir e ok.

Agora Alterar: Clico em Alterar, informo o ID, ele traz no JTextField o conteúdo daquele ID, troco o que quero e salvo. O problema é que qdo salvo essas modificações, ele não altera aquele produto e sim cria outro produto no banco.

Preciso usar o botão salvar pra digitar algo e incluir no banco e o mesmo botão pra salvar alguma alteração feita em um produto que já existe na banco.

código do botão salvar.

salvar.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

c = 0;

Produto p = new Produto();

ProdutoJpaController jpa = new ProdutoJpaController();
p.setRef(referencia.getText());
            p.setDescri(descricao.getText());
            p.setVal(valor.getText());
            p.setsForn(fornecedor.getText());

            if (referencia.getText().isEmpty()) {
                JOptionPane.showMessageDialog(null,"Digite ao menos uma Referencia");
              } else {
                try {
                    jpa.edit(p);
                    salvar.setEnabled(true);
                }
                catch (NonexistentEntityException ex) {
                    Logger.getLogger(AplicaCliente.class.getName()).log(Level.SEVERE, null, ex);
                } catch (Exception ex) {
                    Logger.getLogger(AplicaCliente.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            c = 0;
            ids.setText("");
            referencia.setText("");
            descricao.setText("");
            valor.setText("");
            fornecedor.setText("");
        }
    });

Desde já agradeço!

Fiquem com Deus!

4 Respostas

josue_carrecon

Bem sem ver todo o codigo seu eh chute, mas preste atenção nas situações de alterar e excluir com o "Produto p = new Produto();
ProdutoJpaController jpa = new ProdutoJpaController(); ", pois new, cria um objeto novo.

rodrigofs80

josue carrecon:
Bem sem ver todo o codigo seu eh chute, mas preste atenção nas situações de alterar e excluir com o "Produto p = new Produto();
ProdutoJpaController jpa = new ProdutoJpaController(); ", pois new, cria um objeto novo.

Blz Josue!

Criei apenas um objeto para Produto e para ProdutoJpaController. Agora quero manipular esses objetos… Entendi o que vc quiz dizer. Se a cada escopo colocar um novo “new” eu estou criando um novo objeto e não é o que quero…

Agora: Como já tinha postado antes. Tenho o botão SALVAR e desejo usa-lo de duas formas distintas.
1º - Digitando nos JTextFields e salvando, assim criando um dado novo.
2º - Buscando no banco um dado que já existe, fazer as alterações e salva-las.

Tenho o consultar, que apenas lista o conteúdo da tabela. Cada produto tem seu ID como PK.
Ao clicar em ALTERAR, num JOptionPane.showInputDialog informo o ID do produto que desejo alterar.
Os dados desse produto são recuperados nos JTextFields.
Qdo modifico esses dados e salvo, ele cria um novo dado e não altera o mesmo.

A opção EXCLUIR é semelhante. Num JOptionPane.showInputDialog informo o ID do produto que desejo deletar e ok.
E para Incluir: Apenas digito nos JTextFields os dados e salvo dessa forma cria um novo dado e ok.

Apenas ALTERAR e SALVAR as alterações que estão me tirando o sono…

Desde já agradeço a ajuda!

vanderlan_TI

Kara vc pod ter um erro de SQL

certifique - se q vc colocou no alterar “UPDATE produto SET noneDoSeuCampo = “valor” WHERE ID = p.getID”

espero ter ajudado

flw Caraa

vanderlan_TI

Eu Recomendo pra vc a apostila FJ-21 da Caelum tem um capitulo inteiro sobre esses metodo básicos

:slight_smile:

Criado 26 de novembro de 2010
Ultima resposta 27 de nov. de 2010
Respostas 4
Participantes 3