namedParameterJdbctemplate更新有多个要更新的字段

时间:2019-03-05 12:27:08

标签: java mysql sql spring

尝试更新表中的多个列值。
我所缺少的,有点帮助!

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服务器版本相对应的手册以获取正确的语法。...

1 个答案:

答案 0 :(得分:1)

问题与您的SQL查询有关。 更新表时不需要括号。

使用

更新查询

UPDATE plan_table SET plan_name =:plan_name,price_category =:price_category,updated_by =:id,其中id =:id