在MySQL数据库中输入日期时出现异常

时间:2013-08-26 10:53:02

标签: java mysql date

我有一个MySQL数据库,想要在其中写一行。问题是MySQL不喜欢我的query,为什么?这是我的代码

java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());

for (Integer articlevalue : articlesendlist) {
    for (Integer suppliervalue : suppliersendlist) {
        connection.executeQuery("INSERT INTO Bestellungen(Bestellung_ID, Artikel_ID, Lieferant_ID, Datum, Preis) VALUES (" + maxorder + ", " + articlevalue + ", " + suppliervalue + ", " +  date + ", NULL)");
    }
}

我的代码的一个小描述。 articlesendlist包含来自JTabel的所选值的ID。这同样适用于suppliersendlist。我想将ID写入表“Bestellung”。变量maxorder是表“Bestellung”的当前ID。

如果您需要,例外是:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在'12:45:06.164,NULL)附近'第1行

请不要评论/回答其他链接,我已经搜索过问题并阅读了几个网站。他们没有帮助我或不适合我的问题。

  • 谢谢你的帮助

2 个答案:

答案 0 :(得分:1)

例外是显而易见的不是它。

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在'12:45:06.164,NULL)附近'第1行

您没有在日期字段周围使用引号。

但是你应该真的避免像这样执行你的SQL查询,并为此目的使用PreparedStatemens

PreparedStatemens 有特定方法,例如setDatesetTimesetLongsetString等,您不需要担心在代码中加入正确的引号。

答案 1 :(得分:0)

尝试更改此行:

connection.executeQuery("INSERT INTO Bestellungen(Bestellung_ID, Artikel_ID, Lieferant_ID, Datum, Preis) VALUES (" + maxorder + ", " + articlevalue + ", " + suppliervalue + ", " +  date + ", NULL)");

到此:

connection.executeQuery("INSERT INTO Bestellungen(Bestellung_ID, Artikel_ID, Lieferant_ID, Datum, Preis) VALUES ('" + maxorder + "','" + articlevalue + "','" + suppliervalue + "','" +  date + "','NULL')");