2016-08-23 2 views
-2

Как я могу написать запрос JDBC с двумя предложениями WHERE. Когда я только один, ГДЕ КЛАССИРУЙТЕ, просьба в порядке.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: Тогда, возможно, вы определили его неправильно; не видя этого, нельзя сказать. –

Смежные вопросы