PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Klasse beim Laden von JDBC org.postgresql.Driver nicht gefunden

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?