2009-08-18 13 views
5

To jest mój pierwszy raz używając Javy do dostępu do baz danych, więc prawdopodobnie mam tu prosty błąd, ale kiedy idę, aby pobrać moje połączenie ze zdalnej bazy danych, do której mam dostęp, otrzymuję połączenie odmówił.JDBC- postgres, odmowa połączenia

Oto kod w pytaniu:

String url = "jdbc:postgresql:url.isformatted.like.this/database"; 

try { 
    conn = DriverManager.getConnection(url, "username", "password"); 
} catch (SQLException e) { 
    e.printStackTrace(); 
    System.exit(1); 
} 

(użytkownik/hasło i adres URL bazy danych usunięte przez wzgląd prywatności)

Problemem nie może być poświadczenia lub sam adres URL, jak go używać do ręcznie zalogować się z tego samego pola z powodzeniem za pomocą programu psql. Ja myślę, że to prawdopodobnie formatowanie URL, ale nie mogłem znaleźć żadnych przykładów psql wykorzystywane na zdalnym adresie (wszyscy byli hosta lokalnego kinda rzeczy)

Odpowiedz

12

Według http://www.petefreitag.com/articles/jdbc_urls/ ważnych adresów URL

 
jdbc:postgresql:database 
jdbc:postgresql://host/database 
jdbc:postgresql://host:port/database 
jdbc:postgresql://host:port/database?user=userName&password=pass 
jdbc:postgresql://host:port/database?charSet=LATIN1&compatible=7.2 

Czy masz // przed hostem?

+0

Nie, nie zrobił! (Widziałem // w localhostu jakieś przykłady, ale myślałem, że to dotyczy tylko lokalnych baz danych) THANKYOU! – RyanCacophony

0

właśnie wyglądało ogłoszenie mój kod, który łączy się z bazą danych PostgreSQL, a wygląda to tak:

DriverManager.getConnection(String.format("jdbc:postgresql://%s/%s", server, dbName), userName, password); 

Ponadto, upewnij się, że ładuje sterownik bazy danych PostgreSQL przed próbą łączenia:

Class.forName("org.postgresql.Driver"); 

oraz że biblioteka JDBC JAR biblioteki PostgreSQL znajduje się w ścieżce klas.

1

zgadzam się z @Jonathan o posiadanie słoik biblioteki PostgreSQL JDBC na ścieżce klasy Państwo: tutaj jest to, co kiedyś:

private static final String TABLE_NAME = "tablenamegoeshere"; 
private static final String DRIVER = "org.postgresql.Driver"; 
private static final String URL = "jdbc:postgresql://url.for.database/DatabaseName"; 
private static final String USERNAME = "yourusername"; 
private static final String PASSWORD = "yourpassword"; 


private static Connection getConnection() throws Exception { 
    Class.forName(DRIVER); 
    Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); 
    return conn; 
} 
Powiązane problemy