Heim >Datenbank >MySQL-Tutorial >Warum gibt mein Java-Code beim Löschen aus PostgreSQL den Fehler „Spalte existiert nicht' aus?

Warum gibt mein Java-Code beim Löschen aus PostgreSQL den Fehler „Spalte existiert nicht' aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-27 05:43:13283Durchsuche

Why Does My Java Code Throw a

Fehler: Spalte existiert nicht beim Löschen aus PostgreSQL mit Java

Einführung

Das Verbinden von Java-Programmen mit PostgreSQL und das Durchführen von CRUD-Operationen ist für viele unerlässlich Anwendungen. Dieser Artikel befasst sich mit einem häufigen Fehler, der beim Versuch auftritt, Daten aus einer PostgreSQL-Tabelle mit Java zu löschen.

Der Fehler

Bei der Ausführung des folgenden Codes:

con = DriverManager.getConnection(url, user, password);
String stm = "DELETE FROM hostdetails WHERE MAC = 'kzhdf'";
pst = con.prepareStatement(stm);
pst.executeUpdate();

Benutzer könnten Es tritt der Fehler auf:

SEVERE: ERROR: column "mac" does not exist

Lösung

Bei der Verwendung von PostgreSQL werden Entitätsnamen (z B. Tabellen und Spalten) mit Großbuchstaben müssen durch doppelte Anführungszeichen („“) „escaped“ werden. Daher lautet der richtige Code:

String stm = "DELETE FROM hostdetails WHERE \"MAC\" = 'kzhdf'";

Best Practice für vorbereitete Anweisungen

Zusätzlich wird empfohlen, vorbereitete Anweisungen für mehr Sicherheit und Leistung zu verwenden. Der Code sollte wie folgt aktualisiert werden:

con = DriverManager.getConnection(url, user, password);
String stm = "DELETE FROM hostdetails WHERE \"MAC\" = ?";
pst = con.prepareStatement(stm);
pst.setString(1, "kzhdf");
pst.executeUpdate();

Das obige ist der detaillierte Inhalt vonWarum gibt mein Java-Code beim Löschen aus PostgreSQL den Fehler „Spalte existiert nicht' aus?. 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