gpt4 book ai didi

java - 如果从 JavaFX 中的结果集中找不到任何内容,则显示警报

转载 作者:行者123 更新时间:2023-11-29 11:08:29 24 4
gpt4 key购买 nike

此代码用于在单击按钮后显示错误。 buttonclick 的作用是检查用户名和密码是否与数据库中的用户名和密码相对应。

如果为真,它将显示下一个场景。如果为假,我想显示我犯的错误。显示下一个场景可以正常工作,但显示错误则不行。

这是我的代码:

public Pane createLogin() throws SQLException {
GridPane gridPane = new GridPane();
gridPane.setHgap(10);
gridPane.setVgap(10);
gridPane.setPadding(new Insets(20, 150, 10, 10));

Button login = new Button("Login!");
TextField usernameField = new TextField();
usernameField.setPromptText("Username");
PasswordField passwordField = new PasswordField();
passwordField.setPromptText("Password");
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("ERROR");
alert.setHeaderText("OH SNAP");
alert.setContentText("I have a great message for you!");

login.setOnAction(new EventHandler<ActionEvent>() {

@Override
public void handle(ActionEvent event) {

String username = usernameField.getText();
String password = passwordField.getText();
String query = "Select * from user WHERE username ='" + username + "' and password ='" + password + "'";
ResultSet rs = null;
System.out.println("hahah:" + username);
try {
rs = dataBase.executeQuery(query);
dataBase.executeDataRowQuery(query);
while (rs.next()) {
if (username.equals(rs.getString("username"))) {
if (password.equals(rs.getString("password"))) {
switchScreen(createOverview());
} else{
alert.showAndWait();
}
} else{
alert.showAndWait();
}
alert.showAndWait();
}
} catch (SQLException e) {
e.printStackTrace();
}


}
});
gridPane.add(new Label("Username: "), 0, 0);
gridPane.add(usernameField, 0, 1);
gridPane.add(new Label("Password: "), 1, 0);
gridPane.add(passwordField, 1, 1);

gridPane.add(new Label("Login!"), 2, 0);
gridPane.add(login, 2, 1);

return gridPane;
}

最佳答案

由于 ResultSet.next 返回如果存在更多行,因此您可以这样做

if (rs.next()) {
switchScreen(createOverview());
} else {
alert.showAndWait();
}

或者使用SELECT COUNT(*) FROM ...并检查第一行中的第一列:

if (rs.next() && rs.getInt(1) > 0)
...

注意:我不会详细说明 SQL 注入(inject)或其他严重的安全问题,例如允许读取密码和用户名信息...

关于java - 如果从 JavaFX 中的结果集中找不到任何内容,则显示警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40995563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com