首页 > 解决方案 > 春季更新数据列的问题

问题描述

我有一个名为 ProgramData 的数据库表。他们我有一个名为 Id 的数据列并被执行。id 设置为自动增量。

表结构是这样的。

在此处输入图像描述

我想要的是根据 id 执行的列需要更新。以下是我的代码段。

 public void saveDtvProgDataExecuted()
  {
    ProgramData programeData = new ProgramData();
    String SQL = "UPDATE program_data SET executed=1 WHERE programeData.id = ?";
    this.jdbcTemplate.update(SQL);
}

如果我运行此代码,则会出现错误,例如SQL 语法错误 [UPDATE program_data SET executed=1 WHERE programeData.id = ?]; 嵌套异常是 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; 检查与您的 MariaDB 服务器版本相对应的手册,以了解在“?”附近使用的正确语法。在第 1 行

标签: springspring-boot

解决方案


问题是您没有将 ID 值传递给 jdbctemplate。

你应该使用 this.jdbctemplate.update(SQL, id); 其中 id 是您正在更新的记录的 id。

请参阅文档以获取更多信息: http ://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#jdbc-updates


推荐阅读