无法加载驱动程序 class:com.mysql.cj.jdbc.Driver
Cannot load driver class: com.mysql.cj.jdbc.Driver
我的 Spring 引导项目尝试使用驱动程序 mysql-connector-java
连接到 MYSQL 数据库。
我导入了最新的 mysql 驱动程序和 spring-boot-starter-data-jpa
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
我已经在 application.properties
文件中配置了数据库连接
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
spring.datasource.username=somethingfunny
spring.datasource.password=somethingfunny
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
#spring.jpa.show-sql: true
MYSQL版本为8.0.26
Spring 引导版本 2.6.2
使用 Intellij 运行 项目时出现错误
Caused by: org.springframework.beans.BeanInstantiationException:
Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory
method 'dataSource' threw exception; nested exception is
java.lang.IllegalStateException: Cannot load driver class:
com.mysql.cj.jdbc.Driver at
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
~[spring-beans-5.3.14.jar:5.3.14] at
org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
~[spring-beans-5.3.14.jar:5.3.14] ... 35 common frames omitted Caused
by: java.lang.IllegalStateException: Cannot load driver class:
com.mysql.cj.jdbc.Driver at
org.springframework.util.Assert.state(Assert.java:97)
~[spring-core-5.3.14.jar:5.3.14] at
org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:241)
~[spring-boot-autoconfigure-2.6.2.jar:2.6.2] at
org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.initializeDataSourceBuilder(DataSourceProperties.java:193)
~[spring-boot-autoconfigure-2.6.2.jar:2.6.2] at
org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:48)
~[spring-boot-autoconfigure-2.6.2.jar:2.6.2] at
org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari.dataSource(DataSourceConfiguration.java:90)
~[spring-boot-autoconfigure-2.6.2.jar:2.6.2] at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) ~[na:na] at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[na:na] at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:na] at
java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
~[spring-beans-5.3.14.jar:5.3.14] ... 36 common frames omitted
我已经参考了关于 Cannot load driver class: com.mysql.jdbc.Driver 的 post(不是 com.mysql.cj.jdbc.Driver),我无法申请我的项目,因为我的项目在使用 com.mysql.cj.jdbc.Driver
而不是 com.mysql.jdbc.Driver
.
我也参考了这个 post Cannot load driver class: com.mysql.cj.jdbc.Driver。但是我找不到这个错误的正确答案(答案被标记为更正)。
如何解决这个错误?
修复设置 jdbc 驱动程序 class 的行,如下所示:我认为这无关紧要,但驱动程序-class-名称更常见。并检查您的构建文件是否是最新的。不妨尝试使用 pom.xml
重建
spring.datasource.driver-class-姓名=com.mysql.cj.jdbc.Driver
您检查过您的 MySQL 连接器是哪个版本吗?
由于您没有在 pom.xml 中指定版本,它有可能拉取了版本 5,现在它抱怨版本 8 需要的 .cj。
这可能是它在没有 .cj ( com.mysql.jdbc.Driver ) 的情况下工作的原因,因为它提取了版本 5。
在您的 pom.xml 中手动添加版本并保持 .cj 不变。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
之后确保你拉你的依赖。
但是,如果您在“mvn clean install”之后只有版本 8,请确保签入您的项目。
根据您分享的图片“mysql版本”,这没有任何意义,例外是关于 mysql-connector jar,它与 workbench 无关,您仍然可以使用 workbench 版本 5,并使用 mysql-connector jar 版本 8,这没有区别。
在 mysql workbench(5 或 8)的任何版本中:
mysql-连接器 8 jar = 需要 .cj
mysql-connector 5 jar = 不需要.cj
您唯一需要做的就是在 pom.xml
中定义 mysql-connector-java 的版本
1) 在pom.xml
中使用这个依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
2) 在您的 application.properties 文件中使用此 属性
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
我已经解决了这个问题。在 Intellij 中右键单击项目,选择 maven,选择重新加载项目。现在 Intellij 将 mysql 驱动程序添加到项目
我的 Spring 引导项目尝试使用驱动程序 mysql-connector-java
连接到 MYSQL 数据库。
我导入了最新的 mysql 驱动程序和 spring-boot-starter-data-jpa
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
我已经在 application.properties
文件中配置了数据库连接
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
spring.datasource.username=somethingfunny
spring.datasource.password=somethingfunny
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
#spring.jpa.show-sql: true
MYSQL版本为8.0.26
Spring 引导版本 2.6.2
使用 Intellij 运行 项目时出现错误
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.14.jar:5.3.14] at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.14.jar:5.3.14] ... 35 common frames omitted Caused by: java.lang.IllegalStateException: Cannot load driver class: com.mysql.cj.jdbc.Driver at org.springframework.util.Assert.state(Assert.java:97) ~[spring-core-5.3.14.jar:5.3.14] at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:241) ~[spring-boot-autoconfigure-2.6.2.jar:2.6.2] at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.initializeDataSourceBuilder(DataSourceProperties.java:193) ~[spring-boot-autoconfigure-2.6.2.jar:2.6.2] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:48) ~[spring-boot-autoconfigure-2.6.2.jar:2.6.2] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari.dataSource(DataSourceConfiguration.java:90) ~[spring-boot-autoconfigure-2.6.2.jar:2.6.2] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.14.jar:5.3.14] ... 36 common frames omitted
我已经参考了关于 Cannot load driver class: com.mysql.jdbc.Driver 的 post(不是 com.mysql.cj.jdbc.Driver),我无法申请我的项目,因为我的项目在使用 com.mysql.cj.jdbc.Driver
而不是 com.mysql.jdbc.Driver
.
我也参考了这个 post Cannot load driver class: com.mysql.cj.jdbc.Driver。但是我找不到这个错误的正确答案(答案被标记为更正)。
如何解决这个错误?
修复设置 jdbc 驱动程序 class 的行,如下所示:我认为这无关紧要,但驱动程序-class-名称更常见。并检查您的构建文件是否是最新的。不妨尝试使用 pom.xml
重建spring.datasource.driver-class-姓名=com.mysql.cj.jdbc.Driver
您检查过您的 MySQL 连接器是哪个版本吗?
由于您没有在 pom.xml 中指定版本,它有可能拉取了版本 5,现在它抱怨版本 8 需要的 .cj。
这可能是它在没有 .cj ( com.mysql.jdbc.Driver ) 的情况下工作的原因,因为它提取了版本 5。 在您的 pom.xml 中手动添加版本并保持 .cj 不变。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
之后确保你拉你的依赖。 但是,如果您在“mvn clean install”之后只有版本 8,请确保签入您的项目。
根据您分享的图片“mysql版本”,这没有任何意义,例外是关于 mysql-connector jar,它与 workbench 无关,您仍然可以使用 workbench 版本 5,并使用 mysql-connector jar 版本 8,这没有区别。
在 mysql workbench(5 或 8)的任何版本中:
mysql-连接器 8 jar = 需要 .cj
mysql-connector 5 jar = 不需要.cj
您唯一需要做的就是在 pom.xml
中定义 mysql-connector-java 的版本1) 在pom.xml
中使用这个依赖<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
2) 在您的 application.properties 文件中使用此 属性
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
我已经解决了这个问题。在 Intellij 中右键单击项目,选择 maven,选择重新加载项目。现在 Intellij 将 mysql 驱动程序添加到项目