Alterar senha - JavaFX [Resolvido]

2 respostas
javafx
T

Galera,
Boa tarde,

Estou iniciando em programação e estou tentando criar a parte de alterar senha em um sistema de autenticação, a autenticação até então está funcionando beleza, valida se o usuario digitou ou não a senha correta, criei uma label, para informar caso a senha e o usuário esteja errado, mas minha dúvida está sendo na hora de trocar a senha, caso o usuário deseje. Estou usando o Eclipse e o Scene Builder, para criar o Layout e meu banco de dados é o MySQL, ao clicar em alterar senha, abre uma nova Stage com login, senha, nova senha e confirmação de senha. o problema está sendo na validação de senha, para confirmar se a nova senha é igual a de confirmação e para validar novamente nessa tela se o usuário e senha estão corretos, para então permitir a alteração

Estou fazendo da seguinte maneira:

public class ControllerAlterarSenha {

@FXML
PasswordField senhaAtual;

@FXML
PasswordField novaSenha;

@FXML
PasswordField confNovaSenha;

@FXML
TextField txtLogin;

@FXML
Label labelInformacao;

@FXML
public void Alterar(ActionEvent event) {

	Connection conn = ConexaoBD.openConnection();

	String sql = "UPDATE usuario SET senha=? WHERE login = ? and senha = ?  ";

	try {
		
		PreparedStatement stmt = (PreparedStatement) conn.prepareStatement(sql);
		stmt.setString(1, novaSenha.getText());
		stmt.setString(2, txtLogin.getText());
		stmt.setString(3, senhaAtual.getText());
		stmt.executeUpdate();
		

	} catch (Exception e) {
		e.getMessage();
	}

}

Esse código até realiza a alteração, mas não estou conseguindo encontrar uma forma para fazer a validação, se alguém, puder ajudar agradeço.

2 Respostas

rodriguesabner
if (campo1.getText().equals(campo2.getText())) {
        campoMensagem.setText("As senhas estão iguais!");
    } else {
        campoMensagem.setText("As senhas estão diferentes!");
    }

Acho que isso é o que vc quer

T

Boa tarde,
Obrigado,

Encontrei uma outra forma, fiz da seguinte maneira:

Connection conn = ConexaoBD.openConnection();

String sql = "UPDATE usuario SET senha=? WHERE login = ? and senha = ?  ";
	
	String sql2 = "SELECT login, senha FROM usuario WHERE login = ? AND senha = ?";

	try {
		PreparedStatement stmt2 = (PreparedStatement) conn.prepareStatement(sql2);
		stmt2.setString(1, txtLogin.getText());
		stmt2.setString(2, senhaAtual.getText());
		ResultSet rs = stmt2.executeQuery();

		if (rs.next()) {
			try {

				if (novaSenha.getText().equals(confNovaSenha.getText())) {

					PreparedStatement stmt = (PreparedStatement) conn.prepareStatement(sql);
					stmt.setString(1, novaSenha.getText());
					stmt.setString(2, txtLogin.getText());
					stmt.setString(3, senhaAtual.getText());
					stmt.executeUpdate();
					labelInformacao.setText("Senha alterada com sucesso");

				} else {

					labelInformacao.setText("Erro: A nova senha tem que ser \nigual a senha de confirmação.");
				}

			} catch (Exception e) {
				e.getMessage();
			}

		} else {
			labelInformacao.setText("Erro: Usuário ou senha atual \ninválido");
		}

	} catch (Exception e) {
		e.getMessage();
	}

}

Obrigado pela atenção.

Criado 27 de julho de 2018
Ultima resposta 31 de jul. de 2018
Respostas 2
Participantes 2