如何在JavaMySQL中将每个数据库表行传递到RelaventJLabels中

如何在JavaMySQL中将每个数据库表行传递到RelaventJLabels中,java,Java,我正在创建一个简单的评级系统。我对数据库表只有3个问题。我在下面附上了屏幕截图 这些问题是 A. B C 我需要的是我在JFrame中放置了3个JLabel,我需要从数据库表中获取并传递到relavent 我将屏幕截图附在下面 但结果仅显示c仅表示仅显示最后一行数据。我需要展示问题1-a, 问题2-b,问题3-c。如何做到这一点,我尝试到目前为止,我附在下面 public void question() { String query = "select

我正在创建一个简单的评级系统。我对数据库表只有3个问题。我在下面附上了屏幕截图

这些问题是 A. B C 我需要的是我在JFrame中放置了3个JLabel,我需要从数据库表中获取并传递到relavent 我将屏幕截图附在下面

但结果仅显示c仅表示仅显示最后一行数据。我需要展示问题1-a, 问题2-b,问题3-c。如何做到这一点,我尝试到目前为止,我附在下面

public void question()
    {
    
      String query = "select * from rate";
      Statement stat =null;
      ResultSet rs;
     
          try {
            stat = con.createStatement();
             rs = stat.executeQuery(query);
              
              while(rs.next())
              {
                  lblq1.setText(rs.getString(2));
                  lblq2.setText(rs.getString(2));
                  lblq3.setText(rs.getString(2));
              }
        } catch (SQLException e) {
            
            e.printStackTrace();
        }
         
    }
尝试更改此选项:

          while(rs.next())
          {
              lblq1.setText(rs.getString(2));
              lblq2.setText(rs.getString(2));
              lblq3.setText(rs.getString(2));
          }
变成这样:

          int id = 1; 
          while(rs.next())
          {
              if ( id == 1 ) lblq1.setText(rs.getString(2));
              if ( id == 2 ) lblq2.setText(rs.getString(2));
              if ( id == 3 ) lblq3.setText(rs.getString(2));
              id += 1;
          }
在当前代码中,为每个值的所有三个feeld设置文本,最后所有feeld都包含最后一个值。 您需要检查要在哪个字段中设置哪个值。
有更好(更有效)的方法来编写此代码(switch/if-else-if),但举个例子,这应该足够了。

每次执行rs.next()时,都会从结果中得到一行。因此,您只是在每个字段中输入相同的值。迭代next(),并每次为不同的字段设置一个值。必须编写三个while循环来执行任务。if(rs.next()){lblq2.setText(rs.getString(2));}Thanksss