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) 个答案