2009-08-18 6 views
5

C'est la première fois que j'utilise java pour accéder aux bases de données, donc j'ai probablement une simple erreur ici, mais quand je vais récupérer ma connexion depuis une base de données distante à laquelle j'ai accès, j'obtiens une connexion refuséJDBC- postgres, connexion refusée

Voici le code en question:

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

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

(user/pass et l'URL de base de données supprimée pour l'amour de la vie privée)

Le problème ne pouvait pas être des informations d'identification ou l'URL elle-même, comme je l'utilise pour Connectez-vous manuellement à partir de la même boîte avec succès en utilisant psql. Je pense qu'il est probablement la mise en forme de l'URL, mais je ne pouvais pas trouver des exemples de psql utilisés sur une adresse à distance (ils étaient tous hôte local choses Kinda)

Répondre

12

Selon http://www.petefreitag.com/articles/jdbc_urls/ urls valides sont

 
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 

Avez-vous le // devant l'hôte?

+0

Nope, je ne ai pas! (J'ai vu le // dans le localhost un peu des exemples, mais je pensais que cela s'appliquait uniquement aux bases de données locales) MERCI! – RyanCacophony

0

Je viens de regarder annonce mon code qui se connecte à une base de données PostgreSQL, et il ressemble à ceci:

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

Aussi, assurez-vous de charger le pilote de base de données PostgreSQL avant d'essayer de se connecter:

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

et que la bibliothèque PostgreSQL JDBC Jar est sur votre chemin de classe.

1

Je suis d'accord avec d'avoir la @ Jonathan bibliothèque jar JDBC PostgreSQL sur vous ClassPath: voici ce que je:

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; 
} 
Questions connexes