我想使用JDBC 4.1驱动程序连接到PostgreSQL数据库。我在pom.xml
:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.3-1101-jdbc41</version>
</dependency>
这会将postgresql-9.3-1101-jdbc41.jar
放入我的类路径中。我已经读过如果在Class.forName()
指定了驱动程序,则不再需要使用META-INF/services/java.sql.Driver
加载驱动程序。 driver-jar有这个文件,但我仍然收到以下错误:
No suitable driver found for jdbc:postgresql://localhost:5432
我只是在测试中调用,然后使用mvn test
运行测试:
DriverManager.getConnection("jdbc:postgresql://localhost:5432");
即使我在收到错误之前打电话给Class.forName()
。如何正确加载驱动程序?
答案 0 :(得分:5)
您的连接网址无效。您必须指定数据库,否则驱动程序将不接受该URL。
正确的网址是:
jdbc:postgresql://localhost:5432/database_name
或者当您使用默认端口时:
jdbc:postgresql://localhost/database_name
消息“找不到合适的驱动程序”是由DriverManager
生成的消息,询问所有已注册的驱动程序是否接受给定的URL。然后将使用第一个说“是”的驱动程序来打开连接。 Postgres驱动程序不接受URL,因为数据库丢失,并且没有其他驱动程序可以询问,DriverManager
“放弃”并向您显示该错误消息。
如果该课程不可用,您将从ClassNotFoundException
获得DriverManager
而不是“消息”。
答案 1 :(得分:0)
这看起来像Maven正确设置类路径的一些问题。 看看this,听起来像是一个类似的问题。