gpt4 book ai didi

java - java 中有关 SQL 语法的错误,而查询在 MySQL 中正常工作

转载 作者:行者123 更新时间:2023-11-29 13:24:25 25 4
gpt4 key购买 nike

在为一家商店创建一个程序,在一个 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();

他们也是建议将语句中括号之间的sql 去掉的人:ResultSet srs = stmt.executeQuery(sql);我发现这非常不合逻辑,而且也给出了错误。

有些人认为我可能遇到连接问题,但我的类中有其他方法可以与我的连接方法完美配合。

有什么建议吗?非常感谢您

最佳答案

您没有在 SQL 查询的 WHERE 之前添加空格。

String sql = "SELECT..  .."
...PuntenInwisselbaarArtikel.Artikelnummer"
+ "WHERE ArtikelWinkel.Naam='" + naamWinkel + "'"; |_ put space here.

关于java - java 中有关 SQL 语法的错误,而查询在 MySQL 中正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20349195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com