mysql - 使用 java eclipse 出现 MySQL 语法的罕见错误

标签 mysql jdbc

'query'累积查询,其中一个是INSERT INTO root:

public StringBuffer query = new StringBuffer("");
private String tmp="";

tmp="INSERT INTO `root` (`root_`) VALUES ('";
tmp=tmp.concat(root);
tmp=tmp.concat("');");
query.append(tmp);

PreparedStatement ps = con.prepareStatement(query.toString());
ps.executeUpdate();
query.delete(0, query.length());

我第一次这样做是正常编译的。

System.out.println(查询);显示这个:

INSERT INTO `root` (`root_`) VALUES ('value1');

但是第二次“查询”包含:

 INSERT INTO `rel_root_doc` (`freq`,`id_doc`, `id_root`) VALUES (1,1,1);
 INSERT INTO `root` (`root_`) VALUES ('value2');

我遇到了这个错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解使用 close 的正确语法。

'INSERT INTO `root` (`root_`) VALUES ('value2')' at line 2

但是如果我在 MySQLWorkbench 中复制并粘贴相同的代码,它就可以完美工作。

感谢您的阅读。

最佳答案

一条语句只能包含一个SQL查询。每个查询都需要一个Statement(或PreparedStatement)。

关于mysql - 使用 java eclipse 出现 MySQL 语法的罕见错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17007227/

相关文章:

mysql - 更新多表

java - 我可以在 Oracle 10g 数据库上使用 Oracle JDBC 12.1.0.1(用于 12c 数据库)吗?

java - 在 neo4j 密码中检索确切的节点 ID

mysql - Presto 如何与关系数据库一起工作

mysql - 不同用户在同一张表上进行多个联接

用于多列的 Java MySQL DISTINCT

java - jdbc 参数太多错误

mysql - Oracle DB - 无序列主键自增列

java - 如何在 JDBC 中设置游标类型?

java - 从 JDBC 触发 SQL 命令时出错 - java.sql.SQLSyntaxErrorException