我已经解决了这个问题,但我只是想知道为什么jdbcTemplate不接受我的jdbcTemplate.update查询但是使用jdbcTemplate.execute,这里是坐标示例的代码:
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);
事先得到任何帮助。
更新 好吧,我只是愚蠢,这是一个简单的索引错误。
答案 0 :(得分:0)
您的纬度和经度是字符串类型。试试这个
Object[] values = new Object[]{"0","0","http://example.com"}