Maison >base de données >tutoriel mysql >Pourquoi mon code Java génère-t-il une erreur « La colonne n'existe pas » lors de la suppression de PostgreSQL ?

Pourquoi mon code Java génère-t-il une erreur « La colonne n'existe pas » lors de la suppression de PostgreSQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-27 05:43:13328parcourir

Why Does My Java Code Throw a

Erreur : la colonne n'existe pas lors de la suppression de PostgreSQL avec Java

Introduction

La connexion des programmes Java à PostgreSQL et l'exécution d'opérations CRUD sont essentielles pour de nombreux candidatures. Cet article traite d'une erreur courante rencontrée lors de la tentative de suppression de données d'une table PostgreSQL à l'aide de Java.

L'erreur

Lors de l'exécution du code suivant :

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

les utilisateurs peuvent rencontrez l'erreur :

SEVERE: ERROR: column "mac" does not exist

Solution

Lors de l'utilisation de PostgreSQL, les noms d'entités (tels que les tableaux et les colonnes) avec des lettres majuscules doivent être « échappées » à l'aide de guillemets doubles (« »). Par conséquent, le code correct est :

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

Meilleures pratiques en matière de déclaration préparée

De plus, il est recommandé d'utiliser des instructions préparées pour une meilleure sécurité et de meilleures performances. Le code doit être mis à jour comme suit :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn