从数据库中获取名称并在带有 java 的选择框中使用它们
Get Names from a DataBase and use them in a choiceBox with java
我正在努力获取数据库中名为 'Names' 的列的值。我还需要将它们插入到 Observabllelist
中,这样我就可以将它们用作 choiceBox
.
中的选项
@FXML
ObservableList GetTournamentsName() throws SQLException {
ObservableList<String> optionList = null;
Connection con = DBconnection.getConnection();
Statement st = con.createStatement();
String sql = ("SELECT Name FROM `tournaments`");
ResultSet rs = st.executeQuery(sql);
if (rs.next()) {
optionList = FXCollections.observableArrayList(rs.getString("Name"));
con.close();
}
return optionList;
}
然后我通过将我从 GetTournamentsName()
方法获得的值分配给 Choicbox TournamentsOption
来初始化我的应用程序场景。
@FXML
void initialize() throws SQLException {
TournamentsOption.setItems(GetTournamentsName());
}
该代码仅部分起作用,我实际上得到了 Table 中的第一个名称,但不是所有其他的。这就是我要问的,我如何获得所有的价值?
预先感谢您的所有帮助!
这里有一个 if (rs.next()) {
它不会迭代 rs.next()
您需要制作它 while (rs.next()) {
并根据需要更改添加逻辑
您需要先声明并初始化您的选项列表。然后向其中添加数据。您的方法将永远只有一个数据字符串。您还在错误的地方关闭了连接。
@FXML
ObservableList GetTournamentsName() throws SQLException {
ObservableList<String> optionList = FXCollections.observableArrayList();
Connection con = DBconnection.getConnection();
Statement st = con.createStatement();
String sql = ("SELECT Name FROM `tournaments`");
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
optionList.add(rs.getString("Name")));
}
con.close();
return optionList;
}
我正在努力获取数据库中名为 'Names' 的列的值。我还需要将它们插入到 Observabllelist
中,这样我就可以将它们用作 choiceBox
.
@FXML
ObservableList GetTournamentsName() throws SQLException {
ObservableList<String> optionList = null;
Connection con = DBconnection.getConnection();
Statement st = con.createStatement();
String sql = ("SELECT Name FROM `tournaments`");
ResultSet rs = st.executeQuery(sql);
if (rs.next()) {
optionList = FXCollections.observableArrayList(rs.getString("Name"));
con.close();
}
return optionList;
}
然后我通过将我从 GetTournamentsName()
方法获得的值分配给 Choicbox TournamentsOption
来初始化我的应用程序场景。
@FXML
void initialize() throws SQLException {
TournamentsOption.setItems(GetTournamentsName());
}
该代码仅部分起作用,我实际上得到了 Table 中的第一个名称,但不是所有其他的。这就是我要问的,我如何获得所有的价值? 预先感谢您的所有帮助!
这里有一个 if (rs.next()) {
它不会迭代 rs.next()
您需要制作它 while (rs.next()) {
并根据需要更改添加逻辑
您需要先声明并初始化您的选项列表。然后向其中添加数据。您的方法将永远只有一个数据字符串。您还在错误的地方关闭了连接。
@FXML
ObservableList GetTournamentsName() throws SQLException {
ObservableList<String> optionList = FXCollections.observableArrayList();
Connection con = DBconnection.getConnection();
Statement st = con.createStatement();
String sql = ("SELECT Name FROM `tournaments`");
ResultSet rs = st.executeQuery(sql);
while(rs.next()) {
optionList.add(rs.getString("Name")));
}
con.close();
return optionList;
}