首页 文章

您的SQL语法有错误(但没有错误)[重复]

提问于
浏览
0

这个问题在这里已有答案:

JDBC给了我这个错误 .

Grave:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL语法中有错误;检查与MariaDB服务器版本对应的手册,以便在'INSERT INTO entitytwitterusertofollow VALUES(0,NULL,NULL,1018880775335436288,F')第2行附近使用正确的语法

我有一个巨大的Java字符串,有如下数千行:

INSERT INTO `entitytwitterusertofollow` VALUES(0,NULL,NULL,984815801063571456,FALSE,1);
INSERT INTO `entitytwitterusertofollow` VALUES(0,NULL,NULL,1018880775335436288,FALSE,1);
INSERT INTO `entitytwitterusertofollow` VALUES(0,NULL,NULL,845199742065827841,FALSE,1);
INSERT INTO `entitytwitterusertofollow` VALUES(0,NULL,NULL,1018871764624035840,FALSE,1);
INSERT INTO `entitytwitterusertofollow` VALUES(0,NULL,NULL,811280845638090752,FALSE,1);
INSERT INTO `entitytwitterusertofollow` VALUES(0,NULL,NULL,1018804045635641344,FALSE,1);
INSERT INTO `entitytwitterusertofollow` VALUES(0,NULL,NULL,1018784953839038464,FALSE,1);

但是如果我调试,查看我的String,将其保存在文件中,然后在MariaDB中导入它,一切都很好 .

JDBC出了什么问题?

1 回答

  • 2

    我实际上是在使用 bad code

    在JDBC中,我们应该使用 addBatch(sql); 来执行这种操作 .

    for (...) {
        final String sql = "INSERT INTO `entitytwitterusertofollow` (ENTITYUSERID, ENTITYTWITTERCONCURRENT_ID) VALUES("+ id + "," + concurrent.getId() + ");";
        statement.addBatch(sql);
    }
    
    statement.executeBatch();
    conn.commit(); // if needed
    

相关问题