尝试更新表中的多个列值。
我所缺少的,有点帮助!
dao
方法就像...
dao
类 Plan 的所有字段均填充有适当的数据。
public void updatePlan(Plan plan) {
SqlParameterSource mapSqlParameterSource = new MapSqlParameterSource().addValue("id", plan.getId())
.addValue("plan_name", plan.getPlan())
.addValue("price_category", plan.getPrice_category())
.addValue("updated_by", subscriptionPlan.getId());
String UPDATE_PLAN = "UPDATE plan_table SET(plan_name= :plan_name, price_category= :price_category, updated_by= :id) where id=:id)";
SqlParameterSource parameterSource = new BeanPropertySqlParameterSource(subscriptionPlan);
namedParameterJdbcTemplate.update(UPDATE_PLAN, mapSqlParameterSource);
}
错误是...(MySQL数据库-5.6.43,Workbench-6.3.9)
org.springframework.jdbc.BadSqlGrammarException:
PreparedStatementCallback;错误的SQL语法[更新webstat_plan集(plan_name =?,price_category =?,updated_by =?),其中id =?)];嵌套的异常是com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册以获取正确的语法。...
答案 0 :(得分:1)
问题与您的SQL查询有关。 更新表时不需要括号。
使用
更新查询UPDATE plan_table SET plan_name =:plan_name,price_category =:price_category,updated_by =:id,其中id =:id