Heim > Datenbank > MySQL-Tutorial > Warum löst mein JDBC-Code eine MySQLSyntaxError-Ausnahme aus, obwohl die SQL-Anweisung in Workbench funktioniert?

Warum löst mein JDBC-Code eine MySQLSyntaxError-Ausnahme aus, obwohl die SQL-Anweisung in Workbench funktioniert?

Mary-Kate Olsen
Freigeben: 2024-11-03 06:27:03
Original
929 Leute haben es durchsucht

Why is my JDBC code throwing a MySQLSyntaxError Exception even though the SQL statement works in Workbench?

JDBC stößt auf eine MySQLSyntaxError-Ausnahme mit gültiger Syntax

Beim Erkunden einer JDBC-Anwendung, die mit einer MySQL-Datenbank kommuniziert, stoßen Entwickler möglicherweise auf die gefürchtete MySQLSyntaxError-Ausnahme . Interessanterweise wird dieselbe INSERT-Anweisung nahtlos in MySQL Workbench ausgeführt, was einen verwirrt.

Der Schuldige liegt in einem übersehenen Detail im Java-Code:

<code class="java">sInserim.executeUpdate(sqlCommandInserim);</code>
Nach dem Login kopieren

Hier versucht der Entwickler versehentlich, dies zu tun Führen Sie die rohe SQL-Zeichenfolge aus, die Platzhalter (?) enthält. Für ein PreparedStatement sollte jedoch nur die Anweisung selbst ohne die Parameter ausgeführt werden.

Um dies zu beheben, ersetzen Sie die obige Zeile durch:

<code class="java">sInserim.executeUpdate();</code>
Nach dem Login kopieren

Verwenden der MethodeexecuteUpdate() ohne Parameter sorgt dafür, dass das PreparedStatement mit den eingestellten Werten ausgeführt wird. Die Methode „executeUpdate(sqlString)“ sollte ausschließlich für Statement-Objekte verwendet werden.

Nebenbei bemerkt ist es wichtig, eine ordnungsgemäße Ressourcenverwaltung zu gewährleisten, indem das PreparedStatement in einem final-Block geschlossen wird. Dies verhindert einen Ressourcenverlust im Falle von Ausnahmen, eine Praxis, die sich auf Connection-, Statement- und ResultSet-Objekte erstreckt.

Das obige ist der detaillierte Inhalt vonWarum löst mein JDBC-Code eine MySQLSyntaxError-Ausnahme aus, obwohl die SQL-Anweisung in Workbench funktioniert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage