java - 使用 JDBC 和预准备语句时 SQL 语法出现问题

标签 java mysql jdbc

当我尝试执行 UPDATE 时,我收到此错误消息查询:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1

这是我的代码:

sql = "UPDATE object_1_ SET attr_2_ = ?";
prepared = dbConnection.prepareStatement(sql);
prepared.setString(1, "abc");
prepared.executeUpdate();

但是,如果我稍微更改代码并删除参数:

sql = "UPDATE object_1_ SET attr_2_ = 'abc'";
prepared = dbConnection.prepareStatement(sql);
prepared.executeUpdate();

然后就可以了。所以,我想知道我在这里做错了什么?

最佳答案

问题原来是代码实际上在做

prepared.executeUpdate(sql);

当它应该做的时候

prepared.executeUpdate();

关于java - 使用 JDBC 和预准备语句时 SQL 语法出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33476315/

相关文章:

mysql - 将 hybris 数据库更改为 MySQL

java - 无法连接到sql server 2008实例

Java isEmpty() 未定义字符串?

java - 在Struts2中加载长时间运行的初始化数据时如何避免WSOD(黑屏)?

php - PHP/MySQL 中的游戏大厅

php - MySQL SET 时间戳作为慢速查询

Java JDBC 在写入数据库的方法中避免冗余代码?

java - 在没有 JdbcOdbc 默认桥的情况下将 Microsoft Access 与 Java 结合使用

java - 下面的java多线程例子总是死锁

java - 使用按键监听器/箭头键移动图形