Heim >Datenbank >MySQL-Tutorial >Warum kann ich in JDBC keine vorbereiteten Anweisungen für Tabellennamen verwenden?

Warum kann ich in JDBC keine vorbereiteten Anweisungen für Tabellennamen verwenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-19 13:37:09675Durchsuche

Why Can't I Use Prepared Statements for Table Names in JDBC?

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!

Stellungnahme:
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