簡體   English   中英

Postgresql 14 連接失敗 - 沒有合適的驅動程序

[英]Postgresql 14 connection failed - No suitable driver

我正在嘗試解決常見問題“如何添加 jdbc 驅動程序/找不到合適的驅動程序”

安裝了 Postgres 數據庫並且我的其他服務使用了 SpringBoot 連接到數據庫沒有問題:

spring:
  jpa:
    hibernate:
      ddl-auto: create
    database-platform: org.hibernate.dialect.PostgreSQLDialect
    show-sql: true
  datasource:
    url: "jdbc:postgresql://localhost:5432/garage"
    username: garage_owner
    password: XXXX

但是我想通過 DriveManager 建立連接

PS 是的,DataSource 是更好的選擇,它有連接池等 :),但對於實驗我需要 DriveManager

我的 PostgreSQL 版本是 14

C:\Users\fessu>postgres --version
postgres (PostgreSQL) 14.4

我下載了 postgresql-42.4.0 jdbc 驅動程序,並將其添加到項目中: 在此處輸入圖像描述

現在預計將被加載:

在此處輸入圖像描述

這是幾行類代碼 - 我只需要建立連接:

public class JdbcMain {         
final String URL = "jdbc:postgresql://localhost:5432/garage";
    public static void main(String[] args) {
    
            new JdbcMain().setConnectionByDriverManager();
    
        }
    
    public void setConnectionByDriverManager() {
            //https://jdbc.postgresql.org/documentation/head/load.html
            //Class.forName("org.postgresql.Driver");
    
            try {
                Connection connection = DriverManager.getConnection(URL, "garage_owner", "XXXX");
                System.out.println("Connected!");
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
}

但是我得到了眾所周知的錯誤:

Caused by: java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/garage

Postgresql 和 jdbc 版本兼容,url 正確。

我在手動設置 jdbc 時錯過了什么?

這是您在運行時遇到的問題。 執行演示類后,驅動程序類將不可用。 這源於您的項目設置。

postgresql-42.4.0.jar作為而不是作為模塊導出添加到項目中。 這樣,IntelliJ 將為您的實驗提供運行時范圍內的驅動程序。

我看到你在項目中有 Gradle。 在這樣的設置中,JDBC 驅動程序也可以由 Gradle 管理並添加

dependencies {
    //… other dependencies
    runtimeOnly 'org.postgresql:postgresql:42.4.0'
}

build.gradle並讓 Gradle 完成這項工作。

暫無
暫無

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

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