PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Classe non trovata durante il caricamento di JDBC org.postgresql.Driver

Sto lavorando a un progetto web e di recente ho installato Postgres 9.1.1

...

L'ho aggiunto al percorso di build java usando le proprietà del progetto tramite l'eclissi.

Questo è il modo sbagliato. Quel JAR deve essere rilasciato direttamente in /WEB-INF/lib cartella del progetto web senza giocherellare con il Percorso di creazione nelle proprietà del progetto. Quella cartella è parte standard del percorso di classe di runtime di webapp.

Non correlato al problema concreto:hai un grave difetto di progettazione nel tuo DBConnection classe. Hai dichiarato Connection come static che essenzialmente rende la tua connessione non threadsafe . Utilizza un pool di connessioni e non assegnare mai la Connection (né StatementResultSet ) come variabile di classe/istanza. Dovrebbero essere creati e chiusi nello stesso try-finally blocco come dove stai eseguendo la query. Inoltre hai anche un buco di iniezione SQL. Usa PreparedStatement invece di concatenare le variabili controllate dall'utente nella stringa SQL.

Vedi anche:

  • Pratiche di pool di connessioni JDBC MySql per evitare un pool di connessioni esaurito
  • Ottieni la connessione al database da un pool di connessioni
  • Sto utilizzando il pool di connessioni JDBC?