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
privateint codigoEditar =0;
Método responsável por buscar o código do usuário na tabela
JButton button_3 =newJButton("Editar");
button_3.addActionListener(newActionListener(){publicvoid actionPerformed(ActionEvent e){
tabbedPane.setSelectedIndex(0);// Variável responsável por capturar a linha selecionadaint linhaSelecionada =-1;// Busca a linha selecionada e armazena na variável// linhaSelecionada(tr)//
linhaSelecionada = tabela.getSelectedRow();// Validar se uma linha foi selecionadaif(linhaSelecionada >=0){// Armazena a informação da primeira coluna da linha// selecionada(td)//coluna 0 código do funcionárioint 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árioprotectedvoid buscarFuncionario(int codigoFuncionario){
control.Funcionarios func =new control.Funcionarios();//laço foreach que percorre o arraylist referenciando o código do funcionáriofor(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
publicvoid 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 dadosBoolean teste;
teste = pstm.execute();// Validar inserção no banco de dadosif(!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 dadosConnectDB.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.funcionariospublicvoid 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 dadosBoolean teste;
teste = pstm.execute();// Validar inserção no banco de dadosif(!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 dadosConnectDB.fecharConexao(conn);}catch(SQLException e){JOptionPane.showMessageDialog(null,"Erro ao alterar o funcionario!"+e.getMessage());}}
Pergunta
pr99
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
Método responsável por buscar o código do usuário na tabela
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
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
Método de alterar do pacote control da classe funcionários
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
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.