Je travaille sur un projet Web et j'ai récemment installé postgres 9.1.1
...
Je l'ai ajouté au chemin de construction Java en utilisant les propriétés du projet via éclipse.
C'est la mauvaise façon. Ce JAR doit être déposé directement dans /WEB-INF/lib
dossier du projet Web sans jouer avec le Build Path dans les propriétés du projet. Ce dossier fait partie standard du chemin de classe d'exécution de l'application Web.
Non lié au problème concret :vous avez un défaut de conception majeur dans votre DBConnection
classe. Vous avez déclaré Connection
comme static
ce qui rend essentiellement votre connexion non thread-safe . Utilisez un pool de connexions et n'attribuez jamais la Connection
(ni Statement
ni ResultSet
) en tant que variable de classe/d'instance. Ils doivent être créés et fermés dans le même try-finally
bloc comme là où vous exécutez la requête. De plus, vous avez là aussi un trou d'injection SQL. Utilisez PreparedStatement
au lieu de concaténer des variables contrôlées par l'utilisateur dans la chaîne SQL.
Voir aussi :
- Pratiques de regroupement de connexions JDBC MySql pour éviter l'épuisement du pool de connexions
- Obtenir une connexion à la base de données à partir d'un pool de connexions
- Est-ce que j'utilise le regroupement de connexions JDBC ?