Ir para conteúdo
Fórum Script Brasil
  • 0

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


pr99

Pergunta

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!");
        		}

                      // Criando o objeto 

 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();
	
			//validar se estamos cadastrando ou editando os registros
        		if(codigoEditar == 0){
        			manutencao.inserir(func);
        		
        		}else{
        			manutencao.alterar(func);
        			
        		}
        	
        		limparInformacoes();
        		tabbedPane.setSelectedIndex(1);
        		
        	}
        }

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

//parametro objeto dao.funcionarios
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.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...