After the validation method is true, how to cancel sending the data to the database?

Asked

Viewed 39 times

0

I have the application already made. The class Produto, ProdutoDAO and a method validaProdutoPorDescricao()

JButton btnCadastrarProduto = new JButton("Cadastrar");
        btnCadastrarProduto.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                Produto prod = new Produto();
                prod.setDescricao(campoDescricao.getText());
                /*if (!prod.validaProdutoPorDescricao(prod))
                    JOptionPane.showMessageDialog(null, "Produto com nome inválido");*/

                prod.setSaldoEstoque(Integer.parseInt(campoSaldoEstoque.getText()));
                prod.setPrecoCompra(Float.parseFloat(campoPrecoDeCompra.getText()));
                prod.setPrecoVenda(Float.parseFloat(campoPrecoDeVenda.getText()));

                ProdutoDAO prodao = new ProdutoDAO(Database.getConnection());
                prodao.registra(prod);

                campoDescricao.setText("");
                campoSaldoEstoque.setText("");
                campoPrecoDeCompra.setText("");
                campoPrecoDeVenda.setText("");

                // TODO FAZER AÇÃO DO BOTÃO CADASTRAR
            }
        });
        btnCadastrarProduto.setBounds(231, 200, 135, 25);
        contentPane.add(btnCadastrarProduto);

The commented part is where I do a test to call the method and check the argument passed to it. The method works, but wanted to make, if the method is called, interrupt the data passed in the form and cancel sending, because even the method being called the data are going to the database.

  • I changed it, I put the code! Thank you.

1 answer

1


Try to wrap logic with a else:

JButton btnCadastrarProduto = new JButton("Cadastrar");
        btnCadastrarProduto.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                Produto prod = new Produto();
                prod.setDescricao(campoDescricao.getText());

                if (!prod.validaProdutoPorDescricao(prod)) {
                    JOptionPane.showMessageDialog(null, "Produto com nome inválido");
               } else {

                prod.setSaldoEstoque(Integer.parseInt(campoSaldoEstoque.getText()));
                prod.setPrecoCompra(Float.parseFloat(campoPrecoDeCompra.getText()));
                prod.setPrecoVenda(Float.parseFloat(campoPrecoDeVenda.getText()));

                ProdutoDAO prodao = new ProdutoDAO(Database.getConnection());
                prodao.registra(prod);

                campoDescricao.setText("");
                campoSaldoEstoque.setText("");
                campoPrecoDeCompra.setText("");
                campoPrecoDeVenda.setText("");
                }
                // TODO FAZER AÇÃO DO BOTÃO CADASTRAR
            }
        });
        btnCadastrarProduto.setBounds(231, 200, 135, 25);
        contentPane.add(btnCadastrarProduto);
  • I’ll see, but this setAutoCommit() thing, is it ideal to use?

  • @Renannarciso have no idea what you’re talking about.

  • Method used in jdbc to put automatic or non-automatic commit, but when I’m near the computer I’ll see what you said there about putting logic inside the else

  • 1

    Thanks @diegofm, I managed to solve by putting a else

Browser other questions tagged

You are not signed in. Login or sign up in order to post.