【问题标题】:Javaswing : load data from sql to java swingJava Swing:将数据从 sql 加载到 java swing
【发布时间】:2019-10-17 10:38:40
【问题描述】:

当我单击按钮时,它显示一个值。然后我再次点击还是一样,怎么点击按钮下一个显示新值?

try {
 String bdUrl = jdbc:sqlserver://127.0.0.1:1433;databaseName=login;user=sa;password=123;"
 Connection conn  = DriverManager.getConnection(bdUrl);
 String sql = "select cauhoi , caul,cau2,cau3,caudung from tracnghiem";
 Statement statement = conn.createStatement();
 Resultset rs = statement.excuteQuery(sql);

 while (rs.next())
    {
      String cauhoil = rs.getString(1);
      String dapana = rs.getString(2);
      String dapanb = rs.getString(3);
      String dapanc = rs.getString(4);
      String dapand = rs.getString(5);

      lbl.setText(""+cauhoil);
      jrd1.setText(dapana);
      jrd2.setText(dapanb);
      jrd3.setText(dapanc);
      jrd4.setText(dapand);

    }}
  catch (Exception e)
  {
   System.out.println(e);
  }

【问题讨论】:

  • 请提供minimal reproducible example 并在此处发布。请不要发布您的整个代码,而是创建一个小的可运行类来演示您的问题。
  • 1) 除了@SergiyMedvynskyy 的明智建议。 从不发布文本图像(或链接),发布文本本身! 2) 使用逻辑一致的形式缩进代码行和块。缩进是为了让代码流更容易理解!大多数 IDE 都有专门用于格式化代码的键盘快捷键。

标签: java sql-server swing jbutton


【解决方案1】:

它显示相同的值,因为您的 SQL 语句每次执行时都是相同的。由于您不断更新循环内的 Swing 组件,因此您将始终看到 ResultSet 中的最后一个值。

相反,您需要:

  1. 创建一个自定义对象来存储数据库中每行数据的 5 个值中的每一个
  2. 然后您需要读取一次数据,并在您的 while 循环中使用 5 个值中的每一个创建此对象的一个​​实例。
  3. 然后这个对象将被添加到一个 ArrayList 中
  4. 当您单击一个按钮时,您会从 ArrayList 中获取一个对象并在您的 Swing 组件中显示值。
  5. 然后您增加一个索引变量,以便下次单击按钮时,您可以从 ArrayList 中获取下一个对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2015-10-30
    • 2018-09-14
    相关资源
    最近更新 更多