JDBC-postgres, в соединении отказано

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

Вот код, о котором идет речь:

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 на удаленном адресе (все они были локальными вещами хоста)


person RyanCacophony    schedule 18.08.2009    source источник


Ответы (3)


Согласно 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

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

person atk    schedule 18.08.2009
comment
нет! (Я видел // в примерах на локальном хосте, но думал, что это применимо только к локальным базам данных) СПАСИБО! - person RyanCacophony; 18.08.2009

Я бы согласился с @Jonathan насчет наличия JAR-библиотеки 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;
}
person roycemathew    schedule 31.07.2012

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

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

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

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

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

person Jonathan    schedule 18.08.2009