2016-08-23 57 views
-2

如何使用兩個WHERE子句編寫JDBC請求。 當我只有一個WHERE cluse的請求是好的。JDBC - 兩個WHERE子句

// example of array 
String[] listeId1 = null; 
listeId1[0] =['0']; 
listeId1[1] =['1']; 
String[] listeId = null; 
listeId[0] = ['00'] 
listeId[1] = ['01'] 
//I don't know how many elements there will be in listeId1 and listeId 
String inClause = "?"; 
    int i = 1; 
    while (i <= listeId.length - 1) { 
     inClause += ",?"; 
     i++; 
    } 


//my request 
List<Map<String, Object>> result = this.getJdbcTemplate() 
       .queryForList("SELECT * FROM TABLE_FONCTION " + 
         "WHERE ROLE_ID IN (" + inClause + ")" , listeId 
         + " AND PROCESSUS_ID IN (" + inClause1 + ")" ,listeId1) 
         ; 



// Definition of my table 
CREATE TABLE TABLE_FONCTION (
    FONCTION_ID  NUMBER(18) NOT NULL, 
    ACTIVE   CHAR(1)  NOT NULL, 
    TYPE_FONCTION_ID NUMBER(18) NOT NULL, 
    PROCESSUS_ID NUMBER(18) NOT NULL, 
    ROLE_ID  NUMBER(18) NOT NULL 
); 

我的要求有什麼問題?

+0

如何分配一個不存在數組的元素? –

回答

0

您從未定義inClause1;特別是在使用它來構建查詢之前。

+0

這只是因爲我沒有編寫我的Jvav類的所有代碼,但inClause1是之前定義的。 – Laetitia28

+0

@ Laetitia28:那麼也許你錯誤地定義了它;沒有看到它,人們不能說。 –