【发布时间】:2013-12-03 10:56:05
【问题描述】:
在为商店创建一个程序时,该程序在一个 txt 文件中列出了他的分类,从 MySQL(phpMyAdmin) 的数据库中获取他的信息,我在运行文件时总是在 netbeans 中遇到同样的错误。 Netbeans 显示此错误:“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '.....' 附近使用正确的语法”。我的查询是正确的,我在 MySQL 中检查了一百多次,它总是提供正确的表。在java中我也检查了我的代码很多次。
我已经用谷歌搜索了它并找到了一些其他人有一些类似的问题,但没有一个建议的解决方案适用于我的项目。我输入了额外的引号(因为我忘记了它们)。这是我的代码:
String Lijst = "";
Connection con = null;
try
{
con = getConnection();
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
String sql = "SELECT ArtikelWinkel.Artikelnummer, Artikel.Naam, Artikel.Prijs, Artikel.GekregenPunten, ArtikelMetBonus.MinimumAantalGekocht, ArtikelMetBonus.BonuspuntenVerdiend, PuntenInwisselbaarArtikel.PrijsInPunten, PuntenInwisselbaarArtikel.MinimumGeldbedrag "
+ "FROM ArtikelWinkel LEFT OUTER JOIN Artikel ON Artikel.Artikelnummer=ArtikelWinkel.Artikelnummer "
+ "LEFT OUTER JOIN ArtikelMetBonus ON ArtikelWinkel.Artikelnummer=ArtikelMetBonus.Artikelnummer "
+ "LEFT OUTER JOIN PuntenInwisselbaarArtikel ON ArtikelWinkel.Artikelnummer=PuntenInwisselbaarArtikel.Artikelnummer"
+ "WHERE ArtikelWinkel.Naam='" + naamWinkel + "'";
ResultSet srs = stmt.executeQuery(sql);
Lijst = "Naam Winkel - Artikel - Artikelnummer - Prijs - Gekregen punten per artikel - "
+ "min. # kopen om bonus te verdienen - # bonuspunten verdiend - min. bedrag kopen om prijs in punten \n";
while(srs.next())
{
Lijst +="\t\t"+ naamWinkel +" - "+srs.getString("Artikel.Naam")+" - "
+srs.getString("ArtikelWinkel.Artikelnummer") +" - "+srs.getString("Artikel.Prijs")
+ " - "+srs.getString("Artikel.GekregenPunten") +" - " +srs.getString("ArtikelMetBonus.MinimumAantalGekocht") +
" - "+srs.getString("ArtikelMetBonus.BonuspuntenVerdiend") + " - " +srs.getString("PuntenInwisselbaarArtikel.MinimumGeldbedrag")+ "\n";
}
con.close();
他们也是建议 te 将语句中括号之间的 sql 去掉的人:ResultSet srs = stmt.executeQuery(sql);我发现这非常不合逻辑,它也给出了一个错误。
有些人认为我可能有连接问题,但我的班级中有其他方法可以完美地与我的 connectionMethod 配合使用。
有什么建议吗?非常感谢你
【问题讨论】: