JDBC - 两个WHERE子句

时间:2016-08-23 15:11:31

标签: where-clause

如何使用两个WHERE子句编写JDBC请求。 当我只有一个WHERE cluse请求没问题。

// 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
);

我的要求有什么问题?

1 个答案:

答案 0 :(得分:0)

你从未定义inClause1;特别是在使用它构建查询之前。