Botão altera, não esta gravando

16 respostas
Vicente_Bertipalha_B

Boa Noite.
Estou com um problema, fiz um botão de alterar,alterei o salvar para quando for acionado o botão de alterar mudasse de função, ate ai ok, o problema que ele não altera os dados, da a mensagem que foi alterado, e não da erro nenhum, se alguém puder me ajudar agradeço.

16 Respostas

rodriguesabner

Códigos

Vicente_Bertipalha_B

Para chamar o a interface.

// variavel para diferenciar o salvar do alterar      

        //pega os dados do banco
        int linha = this.jtAcessorios.getSelectedRow();
        try {
            int codigoProduto = (int) this.jtAcessorios.getValueAt(linha, 0);

            //recupera os dados do banco
            modelProduto = controllerProduto.retornarProdutoController(codigoProduto);
            //  joga os dados na interface
            buscar.setVisible(true);
            buscar.pack();
            buscar.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

            buscar.jtfCodigo.setText(String.valueOf(modelProduto.getCodigo()));
            buscar.jtfNome.setText(String.valueOf(modelProduto.getNome()));
            buscar.jcbUnidadeEspe.setSelectedItem(String.valueOf(modelProduto.getUnidadeespecifica()));
            buscar.jtfCodigobarra.setText(String.valueOf(modelProduto.getCodigobarro()));
            buscar.jtfDescricao.setText(String.valueOf(modelProduto.getDescricao()));
            buscar.jtfQuantInicial.setText(String.valueOf(modelProduto.getQuantidade()));
            buscar.jtfPrecoinicial.setText(String.valueOf(modelProduto.getPrecoinicial()));
            buscar.jtfPrecoestoque.setText(String.valueOf(modelProduto.getPrecoestoque()));
            buscar.jtfPrecoVendas.setText(String.valueOf(modelProduto.getPrecovenda()));
            buscar.jcbCor.setSelectedItem(String.valueOf(modelProduto.getCor()));
            buscar.jcbFornecedor.setSelectedItem(String.valueOf(modelProduto.getFornecedor()));

            //recupera a imagem
            String caminho = modelProduto.getFoto(); //foto é o nome da coluna no banco de dados
            ImageIcon i = new ImageIcon(new ImageIcon(caminho).getImage().getScaledInstance(buscar.lblImagem.getWidth(), buscar.lblImagem.getHeight(), Image.SCALE_DEFAULT));
            buscar.lblImagem.setIcon(i);// Nesse de cima ele redimensiona e nessa linha ele seta o campo no jLabel

        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Código inválido ou nenhum produto selecionado! ", "AVISO", JOptionPane.ERROR_MESSAGE);
        }

    }

para salvar…

mod.setNome(this.jtfNome.getText());

mod.setUnidadeespecifica((String) this.jcbUnidadeEspe.getSelectedItem()); // converteu com o metodo new de string para bigdecimal

mod.setDescricao(this.jtfDescricao.getText());

mod.setCodigobarro(this.jtfCodigobarra.getText());  // converteu string para int

mod.setPrecoestoque(new BigDecimal(this.jtfPrecoestoque.getText()));

mod.setPrecoinicial(new BigDecimal(this.jtfPrecoinicial.getText()));

mod.setPrecovenda(new BigDecimal(this.jtfPrecoVendas.getText()));

mod.setCor((String) this.jcbCor.getSelectedItem());

mod.setQuantidade(Integer.parseInt(this.jtfQuantInicial.getText()));

//Salvar a foto

mod.setFoto(jTcaminho.getText());
if (cod.alterarProdutoDAOController(mod)) {
            JOptionPane.showMessageDialog(this, "Produto alterado com sucesso!", "SUCESSO", JOptionPane.INFORMATION_MESSAGE);
            ViewProdutosCadastro buscar = (ViewProdutosCadastro) parent;
            buscar.carregarProdutos();
            this.dispose();

        } else {
            //quando o produto estiver cadasto vai dar a mensagem e apagar tudo
            JOptionPane.showMessageDialog(this, "Erro a alterar o produto!", "ERRO", JOptionPane.ERROR_MESSAGE); // MENSAGEM PADRÃO.
            jtfNome.setText("");
            jcbUnidadeEspe.setSelectedItem("");
            jtfDescricao.setText("");
            jtfCodigobarra.setText("");
            jtfPrecoestoque.setText("");
            jtfPrecoinicial.setText("");
            jtfPrecoVendas.setText("");
            jcbCor.setSelectedItem("");
            jtfQuantInicial.setText("");
            lblImagem.setText("");

        }

    }

no DAO esta assim…

public boolean alterarProdutoDAO(ModelProduto pModelProduto) {
        try {
            this.conectar();
            return this.executarUpdateDeleteSQL(
                    "UPDATE tbl_acessorios SET "
                    + "ace_nome = '" + pModelProduto.getNome() + "',"
                    + "ace_unidade_especifica = '" + pModelProduto.getUnidadeespecifica() + "',"
                    + "ace_descricao = '" + pModelProduto.getDescricao() + "',"
                    + "ace_codigo_barra = '" + pModelProduto.getCodigobarro() + "',"
                    + "ace_preco_estoque = '" + pModelProduto.getPrecoestoque() + "',"
                    + "ace_preco_venda = '" + pModelProduto.getPrecovenda() + "',"
                    + "ace_preco_inicial = '" + pModelProduto.getPrecoinicial() + "',"
                    + "ace_cor = '" + pModelProduto.getCor() + "',"
                    + "ace_quantidade = '" + pModelProduto.getQuantidade() + "',"
                    + "ace_foto = '" + pModelProduto.getFoto() + "'"
                    + " WHERE ace_id = '"+pModelProduto.getCodigo()+"'");

        } catch (Exception e) {
            e.printStackTrace();
            return false;
        } finally {
            this.fecharConexao();
        }
    }
}
darlan_machado

Por que me parece que não se trata do mesmo método?

Vicente_Bertipalha_B

eu tenho declarado global darlan.

model.ModelProduto mod = new ModelProduto();
    ControllerProduto cod = new ControllerProduto();
    private ViewProdutosCadastro parent;

Engraçado que aparece a mensagem de alterado com sucesso, mais não altera e nem acusa nenhum erro.

darlan_machado

Tentou debugar e ver por onde passa, onde vai e por que aparece a mensagem?

Vicente_Bertipalha_B

O darlan como estou aprendendo sozinho, vou aprender fazer debug… ai vejo o que deu.

staroski

Como o Darlan já comentou, você postou o método alterarProdutoDAO

Mas no seu código você está chamando o método alterarProdutoDAOController

Então posta o código do método alterarProdutoDAOController

Vicente_Bertipalha_B

sim por que ele… por que ele chama o Controller… assim como estou assistindo uns videos. estou seguindo passo a passo,com a modificações. no controller esta assim.

public boolean alterarProdutoDAOController(ModelProduto pModelProduto){
 return this.daoProduto.alterarProdutoDAO(pModelProduto);
darlan_machado

E o método executarUpdateDeleteSQL?
Por que está usando Statement e não PreparedStatement?

Vicente_Bertipalha_B

Então… é que estou seguindo um rapaz do vídeo. ele passa os métodos, mais não sei estas outras alternativas.
Como seria este código?

darlan_machado

Se está seguindo algum tutorial, faça como está no tutorial.
Agora, não temos como adivinhar. Veja que você posta partes de código, pouco a pouco e nem se dá conta que deixa muitas informações faltando.

Vicente_Bertipalha_B

Meu caro darlan, estou aqui pedindo ajuda, estou postando os códigos que vcs estão pedido, lógico que vc esta escrevendo no tópico por que por que quer ajudar, porém não e nada obrigado, se estou pedido ajuda, e por que fiz conforme o tutorial e não esta dando certo.
Estou aqui no fórum não é por que sou um programador, estou aqui por que acho interessante esta área e estou aqui buscando conhecimento, agora se te incomoda a ajudar por favor, não precisa ficar respondendo o pessoal aqui cara … obrigado pela suposta ajuda.

staroski

Posta o código da sua tela, do seu Controller e do seu DAO, de forma que seja possível ver onde cada parte troca mensagens com a outra.

darlan_machado

Não, não me incomoda ajudar. O problema é que se você quer ficar na posição de vítima e coitadinho, vai fundo.
Agora, se realmente quer ajuda, poste os códigos. Ninguém consegue adivinhar quais foram as coisas que você fez.
Menos reclamação e mais ação.

Vicente_Bertipalha_B

coitadinho… amigo errou a pessoa …mais valeu.

Vicente_Bertipalha_B

Staroski… valeu vou fazer assim, este final de semana, vou refazer tutorial, e analisar tb os processo para entender, acabou que acabei travando discussão mesquinha aqui no fórum,que não e criando para isto, é que é a segunda fez que este rapaz responde assim, mais enfim, tem pessoas que gosta de ajudar aqui… qualquer coisa volto aqui :grin:

Criado 6 de setembro de 2019
Ultima resposta 6 de set. de 2019
Respostas 16
Participantes 4