ホームページ  >  記事  >  データベース  >  JDBC を使用して MySQL データベースに接続すると、「ClassNotFoundException: com.mysql.jdbc.Driver」エラーが発生するのはなぜですか?

JDBC を使用して MySQL データベースに接続すると、「ClassNotFoundException: com.mysql.jdbc.Driver」エラーが発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-02 20:17:30813ブラウズ

Why am I getting a

Java ランタイム エラー: ClassNotFoundException: com.mysql.jdbc.Driver

問題の説明:

JDBC を使用して MySQL データベースに接続する Java アプリケーションが、MySQL JDBC ドライバーをインスタンス化しようとすると、「ClassNotFoundException」が発生します。

考えられる原因:

  1. JDBC ドライバー ライブラリがありません: com.mysql.jdbc.Driver クラスがアプリケーションのランタイム クラスパスにありません。

解決策:

  1. JDBC ドライバーをクラスパスに追加: MySQL JDBC ドライバー JAR ファイル (例: mysql-connector-java-5.1.25-bin.jar) をアプリケーションのクラスパスに追加します。これは、「-cp」パラメータを使用してアプリケーションを実行するときに実行できます:

    • Windows: java -cp .;mysql-connector-java-5.1.25-bin.jar ClientBase
    • Linux/Mac: java -cp .:mysql-connector-java-5.1.25-bin.jar ClientBase

コード例:

<code class="java">// import packages
import java.sql.*;

// create class ClientBase
public class ClientBase {
    // JDBC driver name and database URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://localhost/CLIENTBASE";

    // Database credentials
    static final String USER = "root";
    static final String PASS = "";

    // Begin method main
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;

        try {
            // Register JDBC driver
            Class.forName(JDBC_DRIVER); // Add this line if the driver is not found

            // Open connection
            System.out.println("Connecting to database...");
            conn = DriverManager.getConnection(DB_URL, USER, PASS);

            // Execute a query
            System.out.println("Creating statement...");
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT id, name, address, address 2, city, phone, state, zip, fax FROM CLIENTBASE";
            ResultSet rs = stmt.executeQuery(sql);

            // Extract data from result set
            while (rs.next()) {
                // Retrieve by column name
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String address = rs.getString("address");
                String address2 = rs.getString("address2");
                String city = rs.getString("city");
                String phone = rs.getString("phone");
                String state = rs.getString("state");
                String zip = rs.getString("zip");
                String fax = rs.getString("fax");

                // Display values
                System.out.print("ID: " + id);
                System.out.print(" Name: " + name);
                System.out.println("Address:" + address);
                System.out.println(address2);
                System.out.print("City:" + city);
                System.out.print(" State: " + state);
                System.out.println(" Zip: " + zip);
                System.out.print("Phone: " + phone);
                System.out.println(" Fax: " + fax);
            } // end while

            // clean up
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException se) {
            // Handle errors for JDBC
            se.printStackTrace();
        } catch (Exception e) {
            // Handle errors for Class.forName
            e.printStackTrace();
        } finally {
            // finally block used to close resources
            try {
                if (stmt != null)
                    stmt.close();
            } catch (SQLException se) {
                se.printStackTrace();
            } // end finally
        } // end try
        System.out.println("Goodbye.");
    } // End method main
} // end class ClientBase</code>

以上がJDBC を使用して MySQL データベースに接続すると、「ClassNotFoundException: com.mysql.jdbc.Driver」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。