java.lang.ClassNotFoundException : "com/mysql/jdbc/Driver" with sql driver in pom

标签 java mysql maven jdbc intellij-idea

编辑:修复了问题 - 我没有声明 apache tomcat 插件中的依赖项:

<extraDependencies>
                                <extraDependency>
                                    <groupId>org.apache.derby</groupId>
                                    <artifactId>derby</artifactId>
                                    <version>10.1.3.1</version>
                                </extraDependency>
                                <extraDependency>
                                    <groupId>javax.mail</groupId>
                                    <artifactId>mail</artifactId>
                                    <version>1.4</version>
                                </extraDependency>
                                <extraDependency>
                                    <groupId>mysql</groupId>
                                    <artifactId>mysql-connector-java</artifactId>
                                    <version>5.1.38</version>
                                </extraDependency>
                            </extraDependencies>

以及在 pom 中声明,如下所示。


问题:

我正在尝试在我的 Maven 项目中使用 mysql jdbc 驱动程序:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.38</version>
</dependency>

但我得到:

java.lang.ClassNotFoundException: "com/mysql/jdbc/Driver";
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.ollynural.app.database.retrievedatabase.DatabaseAccessor.returnSummonerDTOFromDatabaseUsingName(DatabaseAccessor.java:53)

编辑:尝试使用字符串而不是 CLASS,错误是:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

DatabaseAccessor 返回SummonerDTOFromDatabaseUsingName 是:

    String URL = prop.getProperty("URL");
    String USER = prop.getProperty("USER");
    String PASS = prop.getProperty("PASS");
    String CLASS = prop.getProperty("CLASS");
    String TABLE_UNIVERSITY_INFO =     prop.getProperty("TABLE_BASIC_INFO");
    try {
        Class.forName(CLASS);
    } catch (ClassNotFoundException e) {
        System.out.println("Can't find SQL Driver");
        e.printStackTrace();
    }

属性是:

URL="jdbc:mysql://localhost:3306/league_database_schema";
USER="username";
PASS="password"
CLASS="com.mysql.jdbc.Driver";

属性可以很好地获取类,但我不知道为什么它找不到类。我对 Maven 比较陌生,在我转向 intellij 和 eclipse 之前,这是有效的,但任何帮助都会非常有帮助!

谢谢

最佳答案

我建议检查存储库以查看 jar 文件是否已实际安装。

在存储库中,您应该在以下位置找到它:(存储库名称)/mysql/mysql-connector-java/5.1.38/

应该有一个jar文件mysql-connector-java-5.1.38.jar 和一个 pom 文件 mysql-connector-java-5.1.38.pom

我相信存储库应该就是这样,如果有人有更多想法/更正,请分享。谢谢。

关于java.lang.ClassNotFoundException : "com/mysql/jdbc/Driver" with sql driver in pom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34278667/

相关文章:

python - 为什么 SQLAlchemy/mysql 总是超时?

maven - 创建名称为 'mvcContentNegotiationManager'的bean时出错

Java Maven 库项目模板

mysql - mysql存放用户密码的地方

java - 导入 facebook SDK 时出错

php - 如何加速 codeigniter/php 分页,sql 查询

java - 可以在多个类方法中使用相同的 BasicDataSource、Connection、Statement 和 ResultSet 对象吗?

java - 即使没有更改,gwt-maven-plugin 也会运行排列

java - java中的Neo4j Cypher match()。查找连接的节点

java - 如何在java中使用HttpURLConnection发回JWT token ?