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?