我有一个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行
请不要评论/回答其他链接,我已经搜索过问题并阅读了几个网站。他们没有帮助我或不适合我的问题。
答案 0 :(得分:1)
例外是显而易见的不是它。
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在'12:45:06.164,NULL)附近'第1行
您没有在日期字段周围使用引号。
但是你应该真的避免像这样执行你的SQL查询,并为此目的使用PreparedStatemens
。
PreparedStatemens
有特定方法,例如setDate
,setTime
,setLong
,setString
等,您不需要担心在代码中加入正确的引号。
答案 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')");