Ich arbeite an einem Webprojekt und ich habe kürzlich postgres 9.1.1 installiert
...
Ich habe es unter Verwendung der Projekteigenschaften zum Java-Erstellungspfad hinzugefügt über Eclipse.
Das ist der falsche Weg. Dieses JAR muss direkt in /WEB-INF/lib abgelegt werden Ordner des Webprojekts, ohne mit dem Erstellungspfad herumzuspielen in den Eigenschaften des Projekts. Dieser Ordner ist standardmäßig Bestandteil des Laufzeitklassenpfads von webapp.
Nicht verwandt zum konkreten problem:du hast einen großen designfehler in deiner DBConnection Klasse. Sie haben Connection deklariert als static was Ihre Verbindung im Wesentlichen nicht threadsicher macht . Verwenden Sie einen Verbindungspool und weisen Sie niemals die Connection zu (noch Statement noch ResultSet ) als Klassen-/Instanzvariable. Sie sollten im selben try-finally erstellt und geschlossen werden Block als wo Sie die Abfrage ausführen. Außerdem haben Sie dort auch ein SQL-Injection-Loch. Verwenden Sie PreparedStatement anstatt benutzergesteuerte Variablen in der SQL-Zeichenfolge zu verketten.
Siehe auch:
- JDBC MySql-Verbindungspooling-Praktiken, um einen erschöpften Verbindungspool zu vermeiden
- Datenbankverbindung aus einem Verbindungspool abrufen
- Verwende ich JDBC Connection Pooling?