簡體   English   中英

加載Postgresql JDBC 4.1驅動程序

[英]Loading the Postgresql JDBC 4.1 driver

我想使用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放入我的類路徑中。 我已經讀到,如果在META-INF/services/java.sql.Driver指定了驅動程序,則不再需要使用Class.forName()加載驅動程序。 驅動程序jar具有此文件,但仍然出現以下錯誤:

No suitable driver found for jdbc:postgresql://localhost:5432

我只是在測試中致電,然后使用mvn test運行mvn test

DriverManager.getConnection("jdbc:postgresql://localhost:5432");

即使我在收到錯誤之前調用Class.forName() 如何正確加載驅動程序?

您的連接網址無效。 您必須指定數據庫,否則驅動程序將不接受URL。

正確的URL為:

jdbc:postgresql://localhost:5432/database_name

或使用默認端口時:

jdbc:postgresql://localhost/database_name

消息“ 找不到合適的驅動程序 ”是由DriverManager生成的消息,詢問所有已注冊的驅動程序是否接受給定的URL。 然后,第一個說“是”的驅動程序將用於打開連接。 Postgres驅動程序不接受URL,因為缺少數據庫,並且沒有其他驅動程序要問, DriverManager “放棄”並向您顯示該錯誤消息。

如果該類不可用,您將從DriverManager收到ClassNotFoundException而不是“消息”。

這似乎與Maven正確設置類路徑有關。 看看這個 ,聽起來像一個類似的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM