2009-08-18 175 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/無效的網址

 
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 2009-08-18 19:16:10

0

我只是看着我的廣告代碼,連接到PostgreSQL數據庫,它看起來像這樣:

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

此外,還要確保你裝PostgreSQL數據庫驅動程序試圖連接之前:

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

並且PostgreSQL JDBC Jar庫位於您的類路徑中。

1

我會@Jonathan同意關於有你的classpath PostgreSQL的JDBC JAR庫:這裏是我用什麼:

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