2
My problem is the following, I saw that when I edit a record , it works, the registration is changed, but when I want to register a new user, it falls in the editing condition, it edits the registration information I was changing previously, not letting register a new user, because this happens?
Variable responsible for validating whether or not you are editing.
private int codigoEditar = 0;
Method responsible for searching the user code in the table.
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!");
}
}
});
Method that receives as parameter the employee code, placing the user information in the registration screen for change.
//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);
}
Method responsible for saving or changing the employee.
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);
}
}
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;
}
}
Save Package Workers Class Control Method
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!");
}
}
}
Method of changing the control package of the staff class
//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());
}
}
I ask for your help to fix the problem.
– Pr99