当前位置: 首页 > 知识库问答 >
问题:

namedParameterJdbctemplate更新多个要更新的字段

平羽
2023-03-14
 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);
}

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,了解正确的语法....

共有1个答案

万俟招
2023-03-14

问题在于您的SQL查询。更新表时不需要括号。

更新您的查询

更新plan_table集plan_name=:plan_name,price_category=:price_category,updated_by=:id,其中id=:id

 类似资料:
  • 例如,我可以运行这个mongo查询: 我们如何用代码和spring MongoTemplate来实现这一点呢?例如,下面是UPDATE一个值的代码: Update#set方法似乎只接受一个(key、value),而不接受多值或值列表。

  • 问题内容: 我知道您可以一次插入多行,是否可以在MySQL中一次更新多行(如在一个查询中)? 编辑:例如,我有以下内容 我想将以下所有更新合并到一个查询中 问题答案: 是的,这是可能的-您可以在插入的键更新中使用INSERT…。 使用您的示例:

  • 我有一个表,其中有一个主id列(自动索引)、两个子id列(也已索引)和12列类型geometry(Polygon)。如果我要更新此表上的约200万行,运行约200万条单独的更新语句是否更快 还是像下面的答案那样,执行较少数量的较大更新语句更快 如果是后者,你对什么是好的有什么建议吗?是 = ~2mil,还是一些较小的子集(我会重复直到它们全部完成)? 编辑:显然,在前一种情况下,我会使用准备好的语

  • 问题内容: 我在Access中创建了一个查找表,以提供列的可能值。现在,我需要使用转换列之前的数据来更新此列。我无法弄清楚将运行的SQL查询。我不断收到错误消息“ UPDATE或DELETE查询不能包含多值字段。” 我的研究表明,我只需要设置列的值,但这总是更新0条记录: 我知道如果更改它以更新文本列,此查询将起作用,因此仅此列绝对是一个问题。 问题答案: 如果要将值添加到多值字段,请使用追加查询

  • 我有一个弹性搜索中按查询更新的用例。 我把一个医生- null 然而,这一次也失败了。 任何关于使用Where更新可以做什么的想法。提前致谢

  • 问题内容: 我需要执行选择,然后以原子方式更新其中的一些行。 我正在使用的代码如下所示(简化): 我可以保证更新将自动执行吗?如果没有,我如何保证? 如果任何其他进程更改了您通过其更新的数据库行,该怎么办?有什么方法可以锁定行? 问题答案: 这里可能有很多技术和概念在起作用,当您开始考虑多线程/多请求应用程序时,事情就会变得相当棘手。 正如Iassevk所说,您应该研究使用事务来确保更新的原子性-