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

标签 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);

我得到以下输出

Driver version: PostgreSQL 9.4 JDBC4.1 (build 1204)
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432
       at java.sql.DriverManager.getConnection(DriverManager.java:689)
       at java.sql.DriverManager.getConnection(DriverManager.java:247)
       at [ the line Connection c = DriverManager... ]

那么这个9.4的驱动怎么不合适呢?我知道我可以通过我的 psql 命令行登录,但我似乎无法通过 Java 让它工作。

我已经做过很多次这样的应用程序,但似乎看不出我在这里遗漏了什么......

最佳答案

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

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

错误的网址:

jdbc:postgresql://localhost:5432

好:

jdbc:postgresql://localhost:5432/

jdbc:postgresql://localhost:5432/thebestdatabase

关于java - 没有适合 postgres 的驱动程序,即使 Class.forName 有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33350971/

相关文章:

java - 使用 fxml 在 JavaFX 中显示图像

postgresql - 在 Golang 中使用 postgres 获取事务提交前的最后一个 ID

java - Spring Web App - 简单的 JDBC 模板建议?

java - 插入具有自动增量列的行

java - 如何为Firebase数据库设置 protected "write"规则?

Java servlet 相当于命令行 PHP?

java - hibernate 和 MySQL 的时区问题

Django 南迁移错误与 postgresql 数据库中的唯一字段

postgresql - 需要帮助编写 PostgreSQL 触发器函数

mysql - 如何更新 TomEE JDBCRealm 中的用户?