2010-11-25 58 views
1

我正在使用Spring-JDBC來執行SQL並獲取結果。PreparedStatement - 不綁定所有參數

SELECT 
     SUM(spend) total_sum 
    FROM TABLE_NAME 
     WHERE 
     sup_id = ? AND  
     ((YEAR = ? AND period IN (?)) OR  
     (YEAR = ? AND period IN(?))) 

和綁定變量的傳遞:

final Object[] paramMap = { "1234", "2010", 
       "'01_JAN','02_FEB','03_MAR'", "2009", "'11_NOV','12_DEC'" }; 

final List<LeadTimeDto> query = getJdbcTemplate().query(sql, paramMap, 
       new RowMapper<LeadTimeDto>() { 
        @Override 
        public LeadTimeDto mapRow(final ResultSet resultSet, 
          final int arg1) throws SQLException { 
         final LeadTimeDto leadTimeDto = new LeadTimeDto(); 
         final String string = resultSet.getString("total_sum"); 
         System.out.println("ltime = " + string); 
         leadTimeDto.setLeadTime(string); 
         return leadTimeDto; 
        } 
       }); 

我不知道這裏發生了什麼。我遇到了THIRD參數綁定的問題。 如果我在查詢本身寫下第三個參數的值,如下所示。

​​

如果是quotes(')的問題,那麼FIFTH參數應該也是問題。但它具有約束力。

我試過使用getNamedParameterJdbcTemplate()以及Map和Bean,但沒有運氣。

+0

你得到什麼錯誤? – 2010-11-25 08:25:10

+0

你有沒有遇到異常?如果是的話發佈 – 2010-11-25 08:26:48

回答