2014-04-22 346 views
1

我写了一个java程序,它使用jdbc连接到mysql数据库。它将记录插入到mysql中。 的SQL是这样的:我该如何解决java.sql.BatchUpdateException?

INSERT INTO my_schema.my_table VALUES ('AMERICAN', '97', '1995-08-28 00:00:00', '10', '1995-08-28 00:00:00', '10', 'United States Dollar', 'USD', '$', '2', 'Y', 'Y', '1995-08-28 00:00:00', '_6064530F8DBAB938E040007F010015E3'); 

但它给这个错误:

e = (java.sql.BatchUpdateException) java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('AMERICAN', '40', '1995-08-28 00:00:00', '10', '1995-08-28 00:00:00', '10', 'Ja' at line 1 

但奇怪的是:我手动插入它没有错误。

在此先感谢,

+0

你在表中有一个自动递增的主键吗? –

+0

不,我没有主键 –

+0

嗯这个错误看起来像是因为在字符串的某处引用了一些引号。 –

回答

1

这是很奇怪,但它的工作原理:

我只是删除最后一个字符分号,和它的作品:

我的意思是我改变了:

INSERT INTO my_schema.my_table VALUES ('AMERICAN', '97', '1995-08-28 00:00:00', '10', '1995-08-28 00:00:00', '10', 'United States Dollar', 'USD', '$', '2', 'Y', 'Y', '1995-08-28 00:00:00', '_6064530F8DBAB938E040007F010015E3'); 

对此:

INSERT INTO my_schema.my_table VALUES ('AMERICAN', '97', '1995-08-28 00:00:00', '10', '1995-08-28 00:00:00', '10', 'United States Dollar', 'USD', '$', '2', 'Y', 'Y', '1995-08-28 00:00:00', '_6064530F8DBAB938E040007F010015E3')