【问题标题】:Using PreparedStatment for Table Update in Java在 Java 中使用准备好的语句进行表更新
【发布时间】:2014-07-17 05:56:22
【问题描述】:

我一直在使用准备好的语句处理这段代码,但它给了我一个语法错误,我似乎无法理解我的错误。

pr1=con.prepareStatement("Update  printers set Current Job = ? where printers.PNo = ? ");
            pstmt.setInt(1, JObj.retJobno());
            pstmt.setInt(2, mno);
            pr1.executeUpdate();

它给出的错误是:

捕获到异常 java.sql.SQLException: [MySQL][ODBC 5.3(a) Driver][mysqld-5.6.19]您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 'Job = ?打印机.PNo =?在第 1 行

有人可以帮我解决这个问题吗?

【问题讨论】:

  • “当前”和“工作”之间有一个空格。列名不能有空格。
  • Current Job 里面是否有空白?我认为缺少下划线 (_)?
  • @MK 是可以的,但是如果你里面有一个空白,你必须写上用`括起来的名字
  • @Jens 当然可以,但他没有引号,而且在列中有空格是一种不好的做法。
  • @MK 我同意,这是不好的做法。但这是可能的。

标签: java mysql sql jdbc prepared-statement


【解决方案1】:

首先,您的列名中有一个空白,因此您必须在列名周围添加引号或将其重命名为 Current_Job

秒: 您创建了一个名为 pr1 的语句,但为语句 pstmt 设置了参数。请把pstmt改成pr1

【讨论】:

  • @KartavyaKhanna 我已添加我的 cmets 作为答案。如果有帮助,请随时点赞或接受。
猜你喜欢
  • 2014-12-03
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 2011-05-02
  • 2023-03-07
  • 1970-01-01
  • 2011-08-01
相关资源
最近更新 更多