


Warum wirft mein PreparedStatement in Java einen MySQL-Syntaxfehler in der Nähe von „?' aus?
MySQL-Syntaxfehler bei PreparedStatement-Frage
Beim Versuch, eine Abfrage mit PreparedStatement in Java auszuführen, tritt ein Fehler auf, der auf einen Syntaxfehler in der Nähe von „?“ hinweist. Die Ausnahme ist:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? or MemberName = ?' at line 1
Code-Snippet
String query = "select MemberID, MemberName from members where MemberID = ? or MemberName = ?"; Connection conn = DriverManager.getConnection(DATABASE_URL, USERNAME, PASSWORD); PreparedStatement s = conn.prepareStatement(query); s.setInt(1, 2); s.setString(2, "zen"); ResultSet rs = s.executeQuery(query); // Fail!
Problemlösung
Der Fehler tritt auf, weil MySQL das „?“ nicht erkennt. in der SQL-Abfrage als Platzhalter. Dies ist auf den folgenden Aufruf zurückzuführen:
rs = s.executeQuery(query); // Fail!
Anstatt PreparedStatement#executeQuery ohne Argumente zu verwenden, wird die ursprüngliche Abfragezeichenfolge übergeben, die die vorbereitete Anweisung überschreibt.
Um das Problem zu beheben , dieexecuteQuery-Methode von PreparedStatement sollte ohne Argumente aufgerufen werden:
rs = s.executeQuery(); // OK!
Resource Leckage
Obwohl es nichts mit dem ursprünglichen Problem zu tun hat, verliert der Code Ressourcen. Um dies zu verhindern, sollten Ressourcen mit der JDBC-Sprache geschlossen werden:
try { // Acquire resources here } catch (Exception e) { // Handle exception } finally { // Close resources here }
Das obige ist der detaillierte Inhalt vonWarum wirft mein PreparedStatement in Java einen MySQL-Syntaxfehler in der Nähe von „?' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool