Сравнение различных значений из ResultSet в базу данных SQL Query

1

Я новичок в java.I SQL Query, который дает следующий результат

logtime 2014-09-02 16:05:10.0

BL1_data_SS_ST 2      

BL2_data_SS_ST 2

BL3_data_SS_ST 2

BL4_data_SS_ST 1

BL5_data_SS_ST 0

BL6_data_SS_ST 2

/* continues till BL27_data_SS_ST */

st1_prmt_status_p45 1

beam_current  110.58 

beam_energy 2500.0635

У меня есть только одна строка в моем выпуске и 31 столбец. Я использую Java и JSP.


РЕДАКТИРОВАТЬ

Вышеприведенный результат получается следующим методом

public String[][] beamline_Status() {
  int i = 0;
  try {
    con = getConnection();
    stmt = con.createStatement();

    String sql = "SELECT TOP 1 c.logtime, a.BL1_data_SS_ST,a.BL2_data_SS_ST,a.BL3_data_SS_ST,a.BL4_data_SS_ST,a.BL5_data_SS_ST,a.BL6_data_SS_ST,a.BL7_data_SS_ST,a.BL8_data_SS_ST,a.BL9_data_SS_ST,a.BL10_data_SS_ST,a.BL11_data_SS_ST, a.BL12_data_SS_ST,a.BL13_data_SS_ST,a.BL14_data_SS_ST,a.BL15_data_SS_ST,a.BL16_data_SS_ST,a.BL17_data_SS_ST,a.BL18_data_SS_ST,a.BL19_data_SS_ST,a.BL20_data_SS_ST,a.BL21_data_SS_ST,a.BL22_data_SS_ST,a.BL23_data_SS_ST,a.BL24_data_SS_ST,a.BL25_data_SS_ST,a.BL26_data_SS_ST,a.BL27_data_SS_ST,b.st1_prmt_status_p45,c.beam_current,c.beam_energy from INDUS2_BLFE.dbo.main_BLFE_status a inner join INDUS2_MSIS.dbo.main_MSIS_status b on a.logtime=b.logtime inner join INDUS2_BDS.dbo.DCCT c on b.logtime=c.logtime ORDER BY c.logtime DESC ";

    stmt.executeQuery(sql);
    rs = stmt.getResultSet();

    while (rs.next()) {
      for (int j = 0; j < 31; j++) {
        a[i][j] = rs.getString(j + 1);
      }
    }
  } catch (Exception e) {
    System.out.println("\nException (String code):" + e);
  } finally {
    closeConnection(stmt, rs, con);
  }
  return a;
}

Теперь я хочу определить метод, который извлекает значения из ResultSet где значения столбца равны 0 или 1. Как это сделать.

EDIT 2

Я пытаюсь получить значения столбца из набора результатов, где значение столбца равно 1 следующим кодом:

public String[][] beam_CurrentStatus() {
  int i = 0;
  try

  {
    con = getConnection();
    stmt = con.createStatement();

    String sql = "SELECT TOP 1 c.logtime, a.BL1_data_SS_ST,a.BL2_data_SS_ST,a.BL3_data_SS_ST,a.BL4_data_SS_ST,a.BL5_data_SS_ST,a.BL6_data_SS_ST,a.BL7_data_SS_ST,a.BL8_data_SS_ST,a.BL9_data_SS_ST,a.BL10_data_SS_ST,a.BL11_data_SS_ST, a.BL12_data_SS_ST,a.BL13_data_SS_ST,a.BL14_data_SS_ST,a.BL15_data_SS_ST,a.BL16_data_SS_ST,a.BL17_data_SS_ST,a.BL18_data_SS_ST,a.BL19_data_SS_ST,a.BL20_data_SS_ST,a.BL21_data_SS_ST,a.BL22_data_SS_ST,a.BL23_data_SS_ST,a.BL24_data_SS_ST,a.BL25_data_SS_ST,a.BL26_data_SS_ST,a.BL27_data_SS_ST,b.st1_prmt_status_p45,c.beam_current,c.beam_energy from INDUS2_BLFE.dbo.main_BLFE_status a inner join INDUS2_MSIS.dbo.main_MSIS_status b on a.logtime=b.logtime inner join INDUS2_BDS.dbo.DCCT c on b.logtime=c.logtime ORDER BY c.logtime DESC ";

    stmt.executeQuery(sql);
    rs = stmt.getResultSet();

    while (rs.next()) {
      for (int j = 1; j < 31; j++) {
        if ((rs.getString(j)) == "1")

          a[i][j] = rs.getString(j + 1);

      }


    }
  } catch (Exception e) {
    System.out.println("\nException in:" + e);
  } finally {
    closeConnection(stmt, rs, con);
  }

  return a;


}

Но в результате я получаю код выше

[[Ljava.lang.String; @ea25c1

  • 0
    Не уверен, что вы спрашиваете, но select * from table where col1 = 1 or col1 = 2
  • 0
    Вы хотите получить всю таблицу в ResultSet или только в 1-й и 2-й колонке.?
Показать ещё 2 комментария
Теги:
resultset

1 ответ

0

Если вы хотите всю таблицу в ResultSet а затем получите только первый и второй столбцы, вы можете сделать так:

 Statement stmt=conn.createStatement();
 ResultSet rs= stmt.executeQuery("select * from tableName");
 rs.getInt(1);      //assuming your column is of compatible type
 rs.getInt(2);

или другим способом является то, что вы извлекаете только первые два столбца из БД в свой ResultSet

  • 0
    Я не хочу получать только первые два столбца, я хочу получить только те столбцы, для которых соответствующее значение столбца равно 0 0r 1. Для, например: - Значения BL1_data_SS_ST, BL2_data_SS_ST, BL3_data_SS_ST, BL4_data_SS_ST равно 2,2 2,1.Хотя получить только эти столбцы. Более того, logtime, beam_energy и beam_current будет получено независимо от значений других столбцов.
  • 0
    Попробуйте получить всю таблицу в ResultSet затем, используя методы getXXX, вы можете проверить желаемые значения. Если она соответствует, то получить записи в структуре данных.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню