2015-04-25 2 views
1

Я уже решил проблему, но мне просто интересно, почему jdbcTemplate не принимает мой запрос с помощью jdbcTemplate.update, но работает с jdbcTemplate.execute, здесь код для примера, с координатами:SPRING jdbcTemplate.update java.sql.SQLException: Нет значения для параметра

String query = "UPDATE geodomaindocument SET latitude=? , longitude=? WHERE url=?"; 
Object[] values = new Object[]{0,0,"http://example.com"} 
jdbcTemplate.update(query, values); 

возвращение это исключение:

org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [UPDATE geodomaindocument SET latitude=? , longitude=? WHERE url=?]; nested exception is java.sql.SQLException: No value specified for parameter 2 

, но работал с тем же запросом, но с казнить:

query = "UPDATE geodomaindocument SET latitude='"+values[0]+"', longitude='"+values[1]+"' WHERE url='http://example.com'"; 
jdbcTemplate.execute(query); 

Ty заранее за любую помощь.

ОБНОВЛЕНИЕ Хорошо, я просто глуп, это была простая ошибка индекса.

ответ

0

Ваша широта и долгота имеют тип string. Попробуйте это

Object[] values = new Object[]{"0","0","http://example.com"} 
+0

Нет, это не проблема, иначе весна будет использовать String [], а не Object [], чтобы вставить значения переменных. – 4535992