当查询在MySQL中正常工作时,java中关于SQLsyntax的错误
当为一个商店创建一个程序,在一个txt文件中列出他的产品组合,从MySQL(phpMyAdmin)的数据库中获取他的信息时,我总是在运行该文件时在netbeans中遇到同样的错误。Netbeans显示此错误:“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第1行“……”附近使用的正确语法”。我的查询是正确的,我在MySQL中检查了100多次,它总是给出正确的表。同样在java中,我已经多次检查了我的代码 我在谷歌上搜索了一下,找到了其他一些有类似问题的人,但这些建议的解决方案都不适用于我的项目。我输入了额外的引号(因为我忘记了)。这是我的密码:当查询在MySQL中正常工作时,java中关于SQLsyntax的错误,java,mysql,sql,netbeans,Java,Mysql,Sql,Netbeans,当为一个商店创建一个程序,在一个txt文件中列出他的产品组合,从MySQL(phpMyAdmin)的数据库中获取他的信息时,我总是在运行该文件时在netbeans中遇到同样的错误。Netbeans显示此错误:“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第1行“……”附近使用的正确语法”。我的查询是正确的,我在MySQL中检查了100多次,它总是给出正确的表。同样在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);我发现这很不符合逻辑,而且它也给出了一个错误
有些人认为我可能有连接问题,但我班上还有其他方法,它们与我的连接方法完美配合
有什么建议吗?非常感谢在SQL查询中,您没有在
WHERE
前面加空格
String sql = "SELECT.. .."
...PuntenInwisselbaarArtikel.Artikelnummer"
+ "WHERE ArtikelWinkel.Naam='" + naamWinkel + "'"; |_ put space here.
Artikelnummer
和您的WHERE
子句之间没有空格,请按如下方式更改您的查询,然后重试:
+ "LEFT OUTER JOIN PuntenInwisselbaarArtikel ON ArtikelWinkel.Artikelnummer=PuntenInwisselbaarArtikel.Artikelnummer"
+ " WHERE ArtikelWinkel.Naam='" + naamWinkel + "'";