编辑:修复了问题 - 我没有声明 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/