我试图让某人在我正在制作的程序中更改他/她的密码。我试图做一个IF声明,我检查他是否把他的旧密码设置为正确,然后我检查他是否将他的新密码放了两次,如果它们是相同的。
我的问题是,当运行IF语句时,无论我输入什么,它都将变为False。即使它是正确的答案。我尝试了一些方法来解决它,但它没有用。
WachtwoordVeranderenController.java
package testswitch;
import java.net.URL;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
/**
*
* @author Peltos
*/
public class WachtwoordVeranderenController implements Initializable {
@FXML TextField FXOudWachtwoord, FXNieuwWachtwoord, FXBevestigWachtwoord;
@FXML Button gevondenButton;
String id = MainController.getUsername();
String password = MainController.getPassword();
Database database = Main.getDatabase();
@FXML
private void writeToDB() throws SQLException {
String query = "UPDATE testDatabase.Gevonden SET "
+ "Password=?, "
+ "WHERE Username=?;";
PreparedStatement statement = database.prepareStatement(query);
if ((FXNieuwWachtwoord.getText() == password) && (FXNieuwWachtwoord.getText() == FXBevestigWachtwoord.getText())) {
try {
System.out.println("gelukt!");
statement.setString(1, FXNieuwWachtwoord.getText());
statement.setString(2, id);
//statement.executeUpdate();
MainNavigator.loadVista(MainNavigator.START);
} catch(SQLException ex) {
ex.printStackTrace();
}
}
else{
System.out.println("Error");
System.out.println("Password = " +password);
System.out.println("FXOudWachtwoord = " +FXOudWachtwoord.getText());
System.out.println("FXNieuwWachtwoord = " +FXNieuwWachtwoord.getText());
System.out.println("FXBevestigWachtwoord = " +FXBevestigWachtwoord.getText());
}
}
@FXML
private void cancel() {
MainNavigator.loadVista(MainNavigator.START);
}
@Override
public void initialize(URL url, ResourceBundle rb) {
}
}
我的输出中没有任何错误。无论我做什么,它总是需要ELSE语句。我觉得.getText()
与它有关。