2016-08-23 2 views
-2

어떻게 두 개의 WHERE 절이있는 JDBC 요청을 작성할 수 있습니까? 내가 단 하나의 클럭을 요청할 때 괜찮습니다.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 : 그러면 잘못 정의했을 수 있습니다. 그것을 보지 않고, 말할 수 없다. –