2014-12-29 27 views
-1

顯示結果集的值之前,我有一個檢索結果集從值的方法,其中一些列的值是1如何檢查是否持有情況在Java中

現在我想申請其中規定的條件,當beam_current = 101.20beam_energy=2500.063st1_prmt_status_p45=1然後值應該打印。

我的顯示值的代碼是:

public LinkedHashMap < String, Integer > beam_CurrentStatus() throws SQLException { 

    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(); 
    ResultSetMetaData rsmd = rs.getMetaData(); 
    while (rs.next()) { 

     for (int j = 2; j < 29; j++) { 
     if (rs.getInt(j) == 1) { 

      String name = rsmd.getColumnLabel(j); 
      map.put(name, rs.getInt(j)); 

     } 
     } 
    } 

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

我想申請喜歡

if(rs.getInt(29)==1|| rs.getDouble(30)==101.20||rs.getDouble(30)==2500.063) 
     { 

for (int j = 2; j < 29; j++) 
      {....... 

的條件,但如果這種狀況已經對循環沒有影響?如何if條件應用此在while循環中?

+0

您顯示的代碼用於將結果存儲到「地圖」中。 –

+0

@ PM77-1存儲值正在顯示。我只想存儲滿足上述條件的值。 –

+0

您的條件用'和'拼出,但用'||'(或)編程。這是故意的嗎? –

回答

3

我想在下面的條件是錯誤的:

if(rs.getInt(29)==1|| rs.getDouble(30)==101.20||rs.getDouble(30)==2500.063) 

下面是你的條件:

st1_prmt_status_p45=1 
beam_current = 101.20 
beam_energy=2500.063 

這應該是條件:

if(rs.getInt(29)==1|| rs.getDouble(30)==101.20||rs.getDouble(31)==2500.063) 

rs.getDouble(30) ===> rs.getDouble(31)

相關問題