2016-08-23 8 views
-2

2つのWHERE句でJDBC要求を書く方法 私は1つのWHERE cluseを要求しても問題ありません。JDBC - 2つの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:それから間違って定義したかもしれません。それを見ることなく、誰も言うことができません。 –