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>
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>
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!