我嘗試使用下面的驅動程序連接到我的PostgreSQL數據庫:即使Class.forName工作,沒有合適的postgres驅動程序?
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4-1204-jdbc41</version>
</dependency>
我用下面的代碼:
Class.forName("org.postgresql.Driver");
System.out.println("Driver version: " + org.postgresql.Driver.getVersion());
String jdbcUrl = "jdbc:postgresql://localhost:5432";
String user = "postgres";
String pass = "password"; // super secure
Connection c = DriverManager.getConnection(jdbcUrl, user, pass);
而且我得到以下輸出
驅動程序版本:PostgreSQL 9.4 JDBC4.1(內部版本1204)
java.sql.SQLException:找不到適用於jdbc的驅動程序:postgresql:// localhost:5432
在java.sql.DriverManager.getConnection(DriverManager.java:689)
在java.sql.DriverManager.getConnection(DriverManager.java:247)
在[行連接C =的DriverManager ...]
那麼這個9.4驅動程序怎麼不合適呢?我知道我可以通過我的psql命令行登錄,但似乎無法通過Java使其工作。
我所做的應用程序,如過很多次,但似乎無法看到我在這裏失蹤......
嘗試附加一個數據庫名稱的網址:'JDBC:在PostgreSQL:/ /本地主機:5432/dbname'。在類路徑中是否有其他JDBC驅動程序?有些實際上攔截了DriverManager搜索正確驅動程序的方式。 –
哇...我會期望它只是使用默認的數據庫...顯然,我必須明確...如果你想創建一個答案,我會很樂意給你信用的。 – corsiKa
那麼,根據手冊,數據庫名稱是可選的:https://jdbc.postgresql.org/documentation/94/connect.html –