您的sql语法有错误(但没有错误)

ovfsdjhp  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(406)

这个问题在这里已经有了答案

com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception:sql语法错误(1个答案)
两年前关门了。
jdbc给了我这个错误。
grave:com.mysql.jdbc.exceptions.jdbc4.mysqlsyntaxerrorexception:您的sql语法有错误;检查与您的mariadb服务器版本相对应的手册,以获得使用“insert into”附近的正确语法 entitytwitterusertofollow 值(0,null,null,1018880775335436288,第2行的f'
我有一个巨大的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);

但如果我调试、查看字符串、将其保存在文件中,然后将其导入mariadb,一切都会正常。
jdbc有什么问题?

bzzcjhmw

bzzcjhmw1#

实际上我用的是坏代码。。。
在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

相关问题