簡體   English   中英

如何解決此 Java Jdbc 連接錯誤?

[英]How can I solve this Java Jdbc connection Error?

我寫了一個簡單的Java Jdbc連接程序。 我已經把 MySQL 連接器 jar。 我還將類路徑放在環境變量中。 仍然無法解決此連接錯誤。

這是我的代碼:

public class check {

    public static void main(String[] args) {

        System.out.println("-------- MySQL JDBC Connection Demo ------------");
        try
        {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } 
        catch (ClassNotFoundException e) {
            System.out.println("MySQL JDBC Driver not found !!");
            return;
        }
        System.out.println("MySQL JDBC Driver Registered!");
        Connection connection = null;
        try {
            connection = DriverManager
                .getConnection("jdbc:mysql://localhost:3306/company","root","");
            System.out.println("SQL Connection to database established!");

        } catch (SQLException e) {
            System.out.println("Connection Failed! Check output console");
            return;
        } finally {
            try
            {
                if(connection != null)
                    connection.close();
                System.out.println("Connection closed !!");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

Output:

-------- MySQL JDBC Connection Demo ----------
MySQL JDBC Driver Registered!
Connection Failed! Check output console
Connection closed !!

替換以下行

} catch (SQLException e) {
    System.out.println("Connection Failed! Check output console");
    return;
}

} catch (SQLException e) {
    System.out.println("Connection Failed! Check output console");
    e.printStackTrace();
}

這樣您就可以找到問題的根本原因。 你當前的代碼只是在吃那些重要的信息。

在旁注中,刪除以下殘留代碼:

try
{
    Class.forName("com.mysql.cj.jdbc.Driver");
} 
catch (ClassNotFoundException e) {
    System.out.println("MySQL JDBC Driver not found !!");
    return;
}

Class.forName("com.mysql.cj.jdbc.Driver")不需要,因為 Z82269BZ9B71AB4A2178326

異常包含有用的信息。 通過捕獲它們並打印“錯誤”。 你正在消除這些信息。

這不是您處理異常的方式。 這是規則:記錄它/顯示錯誤並沒有處理它。 所以,不要。

只需在您的主要方法上聲明“拋出異常”並刪除所有嘗試/捕獲的東西。 使代碼更具可讀性,現在您可以查看錯誤的全部詳細信息。

如果您必須捕獲這些異常,那么當您真的不知道該怎么做時,catch 塊的正確代碼是: throw new RuntimeException("Unhandled exception", e); - 這仍然可以保證您看到所有錯誤消息和其他詳細信息。

一旦你這樣做了,錯誤信息就會告訴你出了什么問題。

To make the connection with JDBC you need to import the MySQL connector jar file into your project then the JDBC will make a connection with the database.

如果您已成功安裝 MySql,那么對於您獲得的這個特殊異常,只有少數原因。 Class.forName("com.mysql.cj.jdbc.Driver")不會對您的代碼產生任何影響)這些原因是 -

  1. 您尚未創建數據庫company不在您的 MySql 數據庫中。
  2. MySql 客戶端的用戶名無效。
  3. 用戶root的密碼不正確(您沒有提供)
  4. MySql 服務器未在您的系統中啟動以連接客戶端(登錄前啟動)對於 windows 您可以運行此文件\MySQL\MySQL Server 8.0\bin\mysqld.exe以啟動它。

請檢查所有這些可能性。

我已經用我的數據庫嘗試了你的代碼,它工作正常,只需檢查可能的原因。

我明白了.. 我的 wamp Mysql 服務器 url 是 localhost:3308 .. 但我在我的程序中寫了 3306 ......終於解決了..謝謝大家的幫助

暫無
暫無

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

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