Javaswing: загрузить данные из sql в java swing - PullRequest
0 голосов
/ 17 октября 2019

когда я нажимаю кнопку, отображается одно значение. Затем я нажимаю снова, и это все тот же, как нажать кнопку, и она показывает новое значение в следующем?

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

1 Ответ

0 голосов
/ 17 октября 2019

Показывает одно и то же значение, потому что ваш оператор SQL одинаков при каждом его выполнении. Последнее значение вы всегда увидите в ResultSet, поскольку продолжаете обновлять компоненты Swing внутри цикла.

Вместо этого вам необходимо:

  1. создать пользовательский объект для хранения каждого из5 значений для каждой строки данных в базе данных
  2. Затем вам нужно прочитать данные один раз и внутри цикла while вам нужно создать экземпляр этого объекта с каждым из 5 значений.
  3. Этот объект будет затем добавлен в ArrayList
  4. Когда вы нажимаете кнопку, вы получаете объект из ArrayList и отображаете значения в ваших компонентах Swing.
  5. Затем вы увеличиваете индексную переменную, чтобы при следующем нажатии кнопки вы получали следующий объект из ArrayList.
...