簡體   English   中英

Java JDBC - 找不到合適的驅動程序

[英]Java JDBC - No suitable Driver found

我的代碼訪問本地數據庫時遇到問題。 我正在使用 Eclipse 和 postgresql。

我很清楚已經有幾篇這樣的帖子,但它們沒有幫助我解決我的問題,所以這就是我問自己的原因。

驅動程序的 jar 文件已經在庫中並且也被添加到構建路徑中。 但是我仍然從找不到驅動程序中得到錯誤。

無法獲得連接:java.sql.SQLException:找不到適合 psql -h localhost beleg postgres 的驅動程序

我的代碼如下所示:

package DB;
import java.sql.*;

public class Connections {

private Connection dbcon;
private Statement stmt;
private Statement stmt2;

Connections(String db_url, String username, String password) {
    try {
        Class.forName("org.postgresql.Driver");
        dbcon = DriverManager.getConnection(db_url, username, password);

        stmt = dbcon.createStatement();
        stmt2 = dbcon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
        ResultSet.CONCUR_READ_ONLY);
    } catch (Exception e) {
        System.out.println("Can't get a connection: " + e.toString());

        try {
            if (stmt != null)
                stmt.close();
        } catch (SQLException f) {
        }

        try {
            if (stmt2 != null)
                stmt2.close();
        } catch (SQLException f) {
        }
        try {
            if (dbcon != null)
                dbcon.close();
        } catch (SQLException f) {
        }
        System.exit(0);
    }

}

使用 Add Jar 添加了 JAR,因為它位於項目的 lib 文件夾中。

您的 JDBC URL 無效。 嘗試將其更改為:

jdbc:postgresql://localhost/<database name>

有關更多信息,請參閱PostgreSQL JDBC 文檔

當你的 URL 正確時,請考慮重新考慮你的類設計。 java.sql.Statement不是線程安全的。 它永遠不應該是共享的私有成員變量。

您應該在方法范圍內創建StatementResultSet ,使用它們,並在退出方法之前關閉它們。

您應該匯集數據庫連接。

數據庫訪問在Java中已經解決了很長時間。 如果您不使用 Spring Boot,我建議您查看他們的JdbcTemplate實現,以了解如何使用最少的樣板來完成。

暫無
暫無

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

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