SQL Query在工作台中工作,但在java中提供语法错误

时间:2015-03-30 14:10:05

标签: java mysql syntax mysql-workbench

我在sql Workbench和java中的executeUpdate()方法中运行了查询:

在Workbench中:

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

在java中:

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

假设name =“blah”。但是我在java中运行查询时出现语法错误,我已经检查了name的字符串值。它肯定是“blah”,我没有忘记字符串值周围的语音标记,但我仍然得到语法错误。

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

  

查看与您的MySQL服务器版本对应的手册   在'第1行'附近使用正确的语法

1 个答案:

答案 0 :(得分:1)

尝试使用:

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

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

- SQL语句的预编译和数据库端缓存可以提高整体执行速度,并能够批量重用相同的SQL语句。

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