首页 > 解决方案 > 如何将每个数据库表行传递给Java mysql中的相关jLabels

问题描述

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

在此处输入图像描述

这些问题是 b c 我需要的是我在 JFrame 中放置了 3 个 jLabels 我需要从数据库表中获取并传递给相关的 Jlables 我附上了下面的屏幕截图。

在此处输入图像描述

但只显示结果 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();
        }
         
    }

标签: java

解决方案


尝试改变这个:

          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;
          }

在您当前的代码中,您为每个值设置了所有三种感觉的文本,最终所有这些感觉都包含最后一个值。您需要检查要在哪个字段中设置哪个值。有更好(更有效)的方法来编写此代码(switch / if else if),但例如,这应该足够了。


推荐阅读