没有适合postgres的驱动程序,即使Class.forName有效吗?

时间:2015-10-26 16:35:10

标签: java postgresql jdbc

我正在尝试使用以下驱动程序连接到我的postgresql数据库:

<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(build 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工作。

我已经做了很多次这样的应用,但似乎无法看到我在这里缺少的东西......

1 个答案:

答案 0 :(得分:5)

所有归功于a_horse_with_no_name的评论,但这个问题需要答案。

在连接字符串中指定数据库或添加尾部斜杠。

错误的网址:

jdbc:postgresql://localhost:5432

好:

jdbc:postgresql://localhost:5432/

jdbc:postgresql://localhost:5432/thebestdatabase