2009-08-18 6 views
5

Это мой первый раз, когда я использовал java для доступа к базам данных, поэтому у меня, вероятно, есть простая ошибка, но когда я перехожу к восстановлению моего подключения из удаленной базы данных, к которой у меня есть доступ, я получаю соединение отказалась.JDBC-postgres, соединение отказано

Вот код в вопросе:

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

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

(пользователь/пасс и URL базы данных удалены ради конфиденциальности)

Проблема не может быть полномочия или сам URL, как я использую его вручную войдите в ту же папку с помощью psql. Я думаю, что это, вероятно, форматирование URL, но я не мог найти какие-либо примеры PSQL используются на удаленный адрес (они были все местных хост любопытных вещей)

ответ

12

Согласно http://www.petefreitag.com/articles/jdbc_urls/ действительным 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 

У вас есть // перед хостом?

+0

Не, я не сделал! (Я видел // в локальных примерах, но я думал, что это применимо только к локальным базам данных) THANKYOU! – RyanCacophony

0

Я только что посмотрел объявление мой код, который подключается к базе данных PostgreSQL, и это выглядит следующим образом:

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

Кроме того, убедитесь, что вы загружаете драйвер базы данных PostgreSQL, прежде чем пытаться подключиться:

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

и что библиотека JgBC PostgreSQL JD находится на вашем пути к классам.

1

Я согласен с @ Джонатаном о наличии библиотеки баночки PostgreSQL JDBC на вас пути к классам: вот что я использовал:

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; 
} 
Смежные вопросы