Adressierung der Tabellennamenparametrisierung in vorbereiteten JDBC-Anweisungen
JDBC-vorbereitete Anweisungen bieten erhebliche Sicherheits- und Leistungsvorteile, weisen jedoch Einschränkungen auf. Eine dieser Einschränkungen besteht darin, dass Parameter nicht als Tabellennamen in SQL-Abfragen verwendet werden können. Der Versuch, dies zu tun, führt normalerweise zu Fehlern.
Die Lösung ist einfach: Anstatt einen Platzhalter für den Tabellennamen zu verwenden, integrieren Sie den Tabellennamen direkt in Ihre SQL-Abfragezeichenfolge. Zum Beispiel:
<code class="language-java">private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM " + reportDate; </code>
In diesem korrigierten Beispiel wird reportDate
(von dem angenommen wird, dass es den tatsächlichen Tabellennamen enthält) direkt in die SQL-Zeichenfolge verkettet. Dies vermeidet den Versuch, den Tabellennamen zu parametrisieren, und ermöglicht eine erfolgreiche Ausführung der vorbereiteten Anweisung.
Diese Einschränkung ist unbedingt zu beachten: Tabellennamen werden in vorbereiteten Anweisungen nicht als Parameter behandelt und müssen explizit in die Abfrage einbezogen werden. Andernfalls führt dies zu Abfragefehlern.
Das obige ist der detaillierte Inhalt vonWarum kann ich in JDBC keine vorbereiteten Anweisungen für Tabellennamen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!