2008-10-14 10 views
11

Sto cercando di ottenere una connessione jdbc postgres funzionante in eclissi. Sarebbe bello usare Data Source Explorer, ma per ora sto solo cercando di ottenere una connessione di base. Quello che ho fatto finora è scaricare il connettore JDBC postgres. Ho quindi provato due cose diverse. Innanzitutto, Preferenze-> Gestione dati, ho provato ad aggiungere il connettore Postgres. In secondo luogo, ho aggiunto il jar al mio progetto e ho provato a caricare il driver usando Class.forName ("org.postgresql.Driver"); ma nessuno dei due ha funzionato. Qualcuno ha qualche idea?Connessione JDBC Postgres in Eclipse Help

Grazie, Charlie

+0

Definire "né lavorato". Hai ricevuto un messaggio o cosa? –

risposta

-1

Ecco un modo per ottenere la connettività PostgreSQL alla vostra applicazione:

  1. ottenere un'istanza di org.postgresql.ds.PGSimpleDataSource
  2. Setup con valori corrispondenti al database (vedi metodi indicati)
  3. Procedere utilizzando DataSource come si farebbe con qualsiasi altro, suppongo che a questo punto si sia interessati al metodo DataSource.getConnection().

I metodi proprietari per la configurazione di questo particolare DataSource sono setServerName(), setDatabaseName(), setUser() e setPassword().

Non consiglierei di farlo solo per testare ed è possibile che il tuo problema risieda nel modo in cui stai cercando di ottenere un'istanza dell'oggetto usando Class.forName() Ci sono quasi una dozzina di modi diversi per ottenere un'istanza di un oggetto con sottili differenze, suggerisco Googling perché è un argomento che molte persone hanno già scritto su Internet.

20

Questo è come io ho fatto un collegamento: (. Non so se questo è "best practice", ma funziona)

Importazione del conducente:

  1. Fare clic destro sul vostro progetto
  2. Scegli proprietà
  3. scegliere Java build path
  4. scegliere Add external JARS.. e selezionare la posizione al driver JDBC.

Ecco il mio codice:

try{ 
    Class.forName("org.postgresql.Driver"); 
    } catch (ClassNotFoundException cnfe){ 
     System.out.println("Could not find the JDBC driver!"); 
     System.exit(1); 
    } 
Connection conn = null; 
try { 
    conn = DriverManager.getConnection 
        (String url, String user, String password); 
    } catch (SQLException sqle) { 
     System.out.println("Could not connect"); 
     System.exit(1); 
    } 

L'URL può essere di uno dei seguenti formati:

jdbc:postgresql:database 
jdbc:postgresql://host/database 
jdbc:postgresql://host:port/database 
+0

Più di un commento Eclipse generale, ma è anche possibile creare una Libreria utente dalla Libreria Aggiungi nella finestra di dialogo delle proprietà del percorso di creazione. In questo modo puoi fare riferimento allo stesso file jar da più progetti. Quando si esegue l'aggiornamento a una nuova versione, è sufficiente modificare il nome del vaso in 1 posizione. – AngerClown

1

Ho avuto lo stesso problema con GWT.

L'ho risolto copiando il file jar all'interno della cartella "lib": (Progetto \ war \ WEB-INF \ lib). Quando aggiungi un jar al percorso di costruzione sembra che il link sia statico, tuttavia vogliamo la lib in fase di esecuzione!

Spero che risolva il tuo problema.

2

Avevo anche questo problema e la risposta di Vjeux mi ha indirizzato nella giusta direzione.

Ho una copia locale di Tomcat6 che è stata installata ed è gestita da Eclipse. È stato installato in "$ HOME/bin/tomcat6". Per far funzionare il driver JDBC PostgreSQL ho semplicemente copiato il mio file postgresql.jar nella directory '$ HOME/bin/tomcat6/lib'.

Inoltre, se non si sa da dove ottenere il driver, in primo luogo, provare questo. Sto usando Ubuntu quindi ho eseguito 'sudo apt-get install libpg-java' che ha installato il driver in '/usr/share/java/postgresql.jar' e quindi l'ho appena copiato da lì.

0

è possibile scrivere questo codice in persistence.xml

 <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/> 
     <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/yourDataBaseName"/> 
     <property name="javax.persistence.jdbc.user" value="postgres"/> 
     <property name="javax.persistence.jdbc.password" value="yourPassword"/> 
Problemi correlati