SQL 查询在 workbench 中有效,但在 java 中给出语法错误

SQL Query works in workbench but gives syntax error in java

I 运行 sql Workbench 和 java:

中的 executeUpdate() 方法中的查询

在Workbench中:

INSERT INTO recentsearches (name) VALUES ("blah");

在java中:

statement.executeUpdate("INSERT INTO recentsearches (name) VALUES (\""+name+"\""));

假设姓名 = "blah"。但是我从 运行 java 中的查询中得到一个语法错误,我已经检查了名称的字符串值。它肯定会出现 "blah",而且我没有忘记字符串值周围的语音标记,但我仍然遇到语法错误。

我在控制台中得到的错误是:

check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

尝试使用:

"INSERT INTO recentsearches (name) VALUES("+name+")"; 

我的建议是使用 PreparedStatement,因为它有:

-SQL 语句的预编译和数据库端缓存导致整体执行速度更快,并且能够批量重用相同的 SQL 语句。

-通过内置转义引号和其他特殊字符自动防止 SQL 注入攻击。请注意,这需要您使用任何 PreparedStatement setXxx() 方法来设置值