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

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

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

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传递给能够登录的用户。

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

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3130784.html

大家都在问