【发布时间】:2018-12-20 13:52:16
【问题描述】:
所以我正在开发抽认卡应用程序并卡住了。我需要从我的数据库中获取单词的文本字段,将其显示在屏幕上,并在用户按下按钮后更改为下一个。问题是当我使用结果集来设置文本字段时,它只显示数据库的最后一行。我不知道如何从数据库中获取第一个值,然后在用户按下按钮后将其更改为下一个值。
这是我的按钮控制器的一部分:
ResultSet res = st.executeQuery("SELECT fiszka_eng FROM "+LoginHandler.GetLogin()+"");
while(res.next())
{
String textENG = res.getString("table");
TextField.setText(textENG);
//Here i want to wait till the button is pressed and after - change textENG to next row
}
【问题讨论】:
-
Java 支持 MySQL 准备好的语句,我建议使用它们来防止 SQL 注入..
-
您应该将结果集存储到另一个列表中。然后从列表中进行迭代。否则数据库连接不会关闭。
-
这是应用程序结构的一种方式: (1) 首先,读取数据库并查询所有抽认卡数据 - 迭代结果集并填充到
List<Flashcard>中(创建一个Flashcard类并列出所有抽认卡)。 (2) 接下来,在 GUI 中,当用户按下按钮时 - 从List<Flashcard>获取第一张闪存卡并显示在 GUI 的文本字段中。然后在下一个按钮上按下从列表中获取下一张卡片并显示等,直到所有卡片都结束。
标签: java mysql javafx resultset