【问题标题】:Javafx mysql, how to get rows one by oneJavafx mysql,如何一一获取行
【发布时间】: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


【解决方案1】:

因为您遍历整个 ResultSet 对象,因此将 textENG 设置为 db 中的最后一个值。也许将textENG 添加到List,然后在按钮上单击显示该列表的下一个元素。

【讨论】:

    猜你喜欢
    • 2017-05-16
    • 2010-10-31
    • 2021-05-29
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多