找不到适合 jdbc mysql 的驱动程序?

Posted

技术标签:

【中文标题】找不到适合 jdbc mysql 的驱动程序?【英文标题】:No suitable driver found for jdbc mysql? 【发布时间】:2012-07-14 04:37:01 【问题描述】:

我正在尝试编写一个程序以在 Eclipse 中连接到 mysql 数据库,但我收到错误 "java.sql.SQLException: No suitable driver found"

java代码为:

import java.sql.*;

public class FirstExample 

//static final String S_JDBC_DRIVER = "com.mysql.jdbc.Driver";  
static final String S_DB_URL = "jdbc:mysql://localhost:3306/emp";
static final String S_USER = "root";
static final String S_PASS = "root";

public static void main(String[] args) 

    try 

        System.out.println("Connecting to database...");
        //Class.forName(S_JDBC_DRIVER);
        Connection connection = DriverManager.getConnection(S_DB_URL,
                S_USER, S_PASS);

        System.out.println("Creating statement...");
        Statement statement = connection.createStatement();
        String sql = "SELECT * FROM Employee";
        ResultSet resultSet = statement.executeQuery(sql);

        while (resultSet.next()) 

            int iId = resultSet.getInt("id");
            int iAge = resultSet.getInt("age");
            String sFirst = resultSet.getString("fname");
            String sLast = resultSet.getString("lname");

            System.out.print("ID: " + iId);
            System.out.print("\tAge: " + iAge);
            System.out.print("\tFirst: " + sFirst);
            System.out.println("\tLast: " + sLast);
        

        resultSet.close();
        statement.close();
        connection.close();
     catch (SQLException se) 

        for (Throwable t : se) 
            t.printStackTrace();
        
     
    System.out.println("Goodbye!");

控制台选项卡中的输出是:

Connecting to database...
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/emp
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at FirstExample.main(FirstExample.java:21)
Goodbye!

我使用了 MySQL 连接器/J。解压到MySQL安装目录,jar文件添加到CLASSPATH中。

另请参阅此图片。有一个 !在项目根目录标记image01

当我包含 2 个注释语句时,我得到了如下图所示的错误:image02:

static final String S_JDBC_DRIVER = "com.mysql.jdbc.Driver";
Class.forName(S_JDBC_DRIVER);

【问题讨论】:

您需要取消注释这两行,然后按照 Mark 的指示将 MySQL 驱动程序添加到您的项目中。 【参考方案1】:

在获得连接之前加载驱动程序类。

使用此代码:

Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_db", "user", "passw");

【讨论】:

【参考方案2】:

我遇到了和你一样的问题,但是我是这样处理的: 我将名为 mysql-connector-java-5.1.23-bin.jar 的 jar 复制到 \Apache Software Foundation\Tomcat 6.0\lib 中,然后重新启动了 tomcat。 希望有帮助

【讨论】:

【参考方案3】:

我遇到了同样的问题。我通过添加解决了它:

Class.forName("com.mysql.jdbc.Driver");

【讨论】:

另一种方法是Class.forName(Driver.class.getName());。我只是简单地尝试了Driver.class.getName();,但它不起作用,令人惊讶的是。【参考方案4】:

你可以像java -cppwd/mysql-connector-java-5.1.22-bin.jar:. <classname>这样放置路径。

确保您在 mysql 驱动程序所在的同一目录中。

希望有所帮助。

【讨论】:

【参考方案5】:

或者,您也可以通过在 eclipse 中选择项目,将安装的 jar 文件添加到 eclipse 项目中,右键单击它并转到属性,选择 Java 构建路径>>选择库选项卡>>添加外部 jar 文件和对于大多数 ubuntu 用户,浏览已安装的 mysql-connector-java.jar 文件或 /usr/share/java/ 目录中的任何 mysql java 连接器文件。单击确定并重建您的项目。祝你好运

【讨论】:

【参考方案6】:

对于除了最琐碎的应用程序之外的所有应用程序,CLASSPATH 环境变量使用。通常,这些库包含在 jar 清单中的 Class-Path 条目中,或者包含在 java 命令行的 -cp 选项中。

在这种情况下,您需要将 MySQL JDBC 驱动程序添加到 Eclipse 项目的构建路径中。

【讨论】:

以上是关于找不到适合 jdbc mysql 的驱动程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复:“找不到适合 jdbc:mysql://localhost/dbname 的驱动程序”

Maven:找不到适合 jdbc::mysql://google 的驱动程序

Openshift - 找不到适合 jdbc:mysql 的驱动程序

找不到适合 jdbc:mysql/localhost:3306/world 的驱动程序

PySpark 找不到适合 jdbc 的驱动程序:mysql://dbhost

在 JMETER JDBC 连接配置中找不到适合 jdbc:mysql://localhost:3306/Testing 的驱动程序