有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在JavaFX中更改场景后如何存储数据库中的字段?登录后需要从数据库表中捕获“ID”

我正在创建一个JavaFX应用程序,类似于Uber和其他乘车共享应用程序。用户可以注册为“骑手”或“驾驶员”。然后,他们可以登录,到目前为止,应用程序将加载两个场景中的一个,这取决于他们是“骑手”还是“司机”。我想在他们的个人资料上显示他们的信息,但在从Login场景更改为Rider/Driver场景后,我很难捕获用户的信息。另外,JavaFX对我来说是新的,所以我的“工作”代码可能不是最优的

在myLoginController文件中,用户的信息经过身份验证后,将使用此方法登录:

private void loginUser(ActionEvent actionEvent, String scenePath) throws IOException {
    System.out.println("Login Successful!"); //Testing purposes
    Parent root = FXMLLoader.load(getClass().getResource(scenePath));
    Scene userScene = new Scene(root);

    setScene(actionEvent, userScene);
}

然后,他们被重定向到正确的场景,作为“骑手”或“司机”

我目前正在处理RiderController类,该类将处理Rider.fxml的后端

RiderController具有以下intialize()方法来自动检索数据库信息

@Override
public void initialize(URL location, ResourceBundle resources) {
    try {
        userName.setText(databaseManager.selectUser());
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

最后,这里是查询数据库的selectUser()方法。现在,我已经硬编码了一个ID,以确保该方法确实从数据库中打印出一个FIRST_NAME(它确实如此)

public String selectUser() throws SQLException {
    String sql = "SELECT FIRST_NAME FROM USER WHERE ID = ?";
    PreparedStatement preparedStatement = con.prepareStatement(sql);
    preparedStatement.setInt(1, 1);

    String userName = "default";
    ResultSet rs = preparedStatement.executeQuery();
    while(rs.next()) {
        userName = rs.getString("FIRST_NAME");
    }
    return userName;
}

我希望能够在登录页面之后,以某种方式将数据库行中的ID传递给能够登录的用户


共 (0) 个答案