Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

prf99

Erro no cadastro de usuários, alterando o usuário ao invés inserir

Recommended Posts

Meu problema é o seguinte, vi que quando edito um registro , funciona, o cadastro é alterado, mas quando eu quero cadastrar um novo usuário, ele cai na condição de edição, ele edita as informações do cadastro que eu estava alterando anteriormente, não deixando cadastrar um novo usuário, porque isso acontece?

Variável responsável por validar se está editando ou não.

private int codigoEditar = 0;

Método responsável por buscar o código do usuário na tabela.

JButton button_3 = new JButton("Editar");
        button_3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                tabbedPane.setSelectedIndex(0);
                
                // Variável responsável por capturar a linha selecionada
                int linhaSelecionada = -1;
                // Busca a linha selecionada e armazena na variável
                // linhaSelecionada(tr)
                //
                linhaSelecionada = tabela.getSelectedRow();
                // Validar se uma linha foi selecionada
                if (linhaSelecionada >= 0) {
                    // Armazena a informação da primeira coluna da linha
                    // selecionada(td)
                    //coluna 0 código do funcionário
                    int codigoFuncionario = (int) tabela.getValueAt(linhaSelecionada, 0);
                    
                buscarFuncionario(codigoFuncionario);
                } else {
                    JOptionPane.showMessageDialog(null, "Selecione uma " + "linha para alterar o Funcionário!");
                }
            }
        });

Método que recebe como parâmetro o código do funcionário, colocando as informações do usuário na tela de cadastro para alteração.

//recebe como parâmetro o código do funcionário
    protected void buscarFuncionario(int codigoFuncionario) {
         control.Funcionarios func = new control.Funcionarios();
         //laço foreach que percorre o arraylist referenciando o código do funcionário
         for (Funcionarios  funcio : func.listarFuncionarios(codigoFuncionario + "", 1)) {
                
             /*Funcionarios funcio é o Dao, para setar(set) e pegar(get)
              * func.listarFuncionarios(codigoFuncionario + "", 1)) códigoFuncionário + "" concatena o código com o parametro texto da pesquisa da 
              * classe control
              * 1 é a pesquisa por código do funcionário referenciando o parametro do código do funcionário
              */
             
                // Setar informações na tela de cadastro
                nome.setText(funcio.getNome());
                email.setText(funcio.getEmail());
                endereco.setText(funcio.getEndereco());
                telefone.setText(funcio.getTelefone());
                cpf.setText(funcio.getCpf_funcionario());
            
                
                
                //Variável que recebe o valor do codigo do usuário
                //importante para a alteração
                codigoEditar = funcio.getCodigo_funcionario();
            }
            cadastro.setVisible(true);
            listagem.setVisible(false);
            
        }

Método responsável por salvar ou alterar o funcionário.

protected void salvar() {
        // Capturar informações que o usuário digitou
        String nome_funcionario = nome.getText();
        String cpf_funcionario = cpf.getText();
        String endereco_funcionario = endereco.getText();
        String email_funcionario = email.getText();
        String fone_funcionario = telefone.getText();
        String senha_funcionario = senha.getText();
        String rep_senha_funcionario= repsenha.getText();
        if(email_funcionario.equals("")&& cpf_funcionario.equals("")&&fone_funcionario.equals("")&&nome_funcionario.equals("")){
            JOptionPane.showMessageDialog(null, "Preencha os campos");
            
        }else if(!rep_senha_funcionario.equals(senha_funcionario)){
            JOptionPane.showMessageDialog(null, "As senhas são diferentes");
            
            //validar se as senhas são iguais
        }else if(endereco_funcionario.equals("")){
            JOptionPane.showMessageDialog(null, "O campo Endereço é Obrigatório!");
        }
        
        Funcionarios func = new Funcionarios();
        
        func.setNome(nome_funcionario);
        func.setEmail(email_funcionario);
        func.setTelefone(fone_funcionario);
        func.setSenha(senha_funcionario);
        func.setEndereco(endereco_funcionario);
        func.setCpf_funcionario(cpf_funcionario);
        func.setCodigo_funcionario(codigoEditar);
        
        control.Funcionarios manutencao = new control.Funcionarios();
        if(codigoEditar == 0){
            manutencao.inserir(func);
        
        }else{
            manutencao.alterar(func);
            
        }
    
        limparInformacoes();
        tabbedPane.setSelectedIndex(1);
        
    }
}

Classe Dao

package dao;
public class Funcionarios {
    private int codigo_funcionario;
    private String cpf_funcionario;
    private    String email;
    private String endereco;
    private    String nome;
    private String senha;
    private String telefone;
    
    public int getCodigo_funcionario() {
        return codigo_funcionario;
    }
    public void setCodigo_funcionario(int codigo_funcionario) {
        this.codigo_funcionario = codigo_funcionario;
    }
    public String getCpf_funcionario() {
        return cpf_funcionario;
    }
    public void setCpf_funcionario(String cpf_funcionario) {
        this.cpf_funcionario = cpf_funcionario;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getEndereco() {
        return endereco;
    }
    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public String getSenha() {
        return senha;
    }
    public void setSenha(String senha) {
        this.senha = senha;
    }
    public String getTelefone() {
        return telefone;
    }
    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }
}

Método de salvar do pacote control da classe funcionários

public void inserir(dao.Funcionarios func) {
        if (func != null) {
            // Variável de conexão de DB
            java.sql.Connection conn = null;
            try {
                conn = ConnectDB.conexaoDB();
                java.sql.PreparedStatement pstm;
                pstm = conn.prepareStatement(INSERT);
                pstm.setString(1, func.getCpf_funcionario());
                pstm.setString(2, func.getEmail());
                pstm.setString(3, func.getSenha());
                pstm.setString(4, func.getNome());
                pstm.setString(5, func.getEndereco());
                pstm.setString(6, func.getTelefone());
                // Envia para o banco de dados
                Boolean teste;
                teste = pstm.execute();
                // Validar inserção no banco de dados
                if (!teste) {
                    JOptionPane.showMessageDialog(null, "Funcionario cadastrado com sucesso!");
                } else {
                    JOptionPane.showMessageDialog(null, "Erro ao cadastrar o Funcionario!");
                }
                // Fecha a conexão com o banco de dados
                ConnectDB.fecharConexao(conn);
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Erro ao cadastrar o Funcionario!");
            }
        }
    }

Método de alterar do pacote control da classe funcionários

public void alterar(dao.Funcionarios func) {
        java.sql.Connection conn = null;
        try {
            conn = ConnectDB.conexaoDB();
            //prepara a query
            java.sql.PreparedStatement pstm;
            pstm = conn.prepareStatement(UPDATE);
            pstm.setString(1, func.getCpf_funcionario());
            pstm.setString(2, func.getEmail());
            pstm.setString(3, func.getNome());
            pstm.setString(4, func.getEndereco());
            pstm.setString(5, func.getTelefone());
        pstm.setString(6, func.getSenha());
            pstm.setInt(7, func.getCodigo_funcionario());
            // Envia para o banco de dados
            Boolean teste;
            teste = pstm.execute();
            // Validar inserção no banco de dados
            if (!teste) {
                JOptionPane.showMessageDialog(null, "Funcionario alterado com sucesso!");
            } else {
                JOptionPane.showMessageDialog(null, "Erro ao alterar o funcionario!");
            }
            // Fecha a conexão com o banco de dados
            ConnectDB.fecharConexao(conn);
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Erro ao alterar o funcionario!"+e.getMessage());
        }
    
        
    }
        
}

Peço ajuda de vocês para corrigir o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por ILR master
      Fala pessoal.
       
      Seguinte:
       
      Quero selecionar duas tabelas e mostrar com resultados intercalados. Abaixo segue um código explicando para vcs terem uma ideia.
       
      $consulta = "SELECT A.*, B.* FROM tabela1 A, tabela2 B'";
      $resultado = mysqli_query($conexao, $consulta) or die ("erro");
      while($busca = mysqli_fetch_array($resultado)){
       
      print $busca['cod_evento']; --> traz o código da tabela1 
      print $busca['titulo_evento']; -->  traz o titulo da tabela1
      print $busca['cod_noticia']; --> traz o código da tabela2
      print $busca['titulo_noticia']; --> traz o tituloda tabela2
       
      }
       
      Espero que entendam. Grato
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.