#java #mysql #sql #spring
#java #mysql #sql #spring
Вопрос:
Пытаюсь обновить значения нескольких столбцов в таблице.
Чего мне не хватает, небольшая помощь!
dao
Метод похож…
В dao
плане класса все поля заполнены соответствующими данными.
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 set (plan_name= ?, price_category= ?, updated_by= ?), где id=?)]; вложенным исключением является com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на наличие правильного синтаксиса….
Комментарии:
1. Вы пытались выполнить инструкцию SQL (конечно, с реальными значениями вместо заполнителя)? Это может помочь найти проблемы с синтаксисом.
2. спасибо …. за предложение. помогло. Это так глупо с моей стороны. Хотя скобка после SET не требуется для каждого высказывания.
Ответ №1:
Проблема связана с вашим SQL-запросом. При обновлении таблицы скобки не требуются.
Обновите свой запрос с помощью
ОБНОВЛЕНИЕ plann_table УСТАНОВИТЕ plan_name= :plan_name, price_category= :price_category, updated_by= :id где id=:id
Комментарии:
1. Что такое журнал ошибок, пожалуйста, отформатируйте и улучшите свой вопрос, если хотите от кого-нибудь помощи.