我正在做一个带有线程池和MySQL的简单的Spring Boot项目,以便每当我添加spring-boot-starter-jdbc时都连接到MySQL,而我却遇到了错误。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.tomcat.jdbc.pool.DataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: com.mysql.jdbc.Driver
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599) ~[spring-beans-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.s
更新1:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>3.3</version>
</dependency>
</dependencies>
答案 0 :(得分:2)
似乎您缺少mysql-connector依赖项, 将它们添加到您的pom中。
行家:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
或gradle:
compile "mysql:mysql-connector-java:*"
答案 1 :(得分:0)
好像您忘了添加对MySQL的依赖关系(默认情况下,Spring Boot使用H2数据库),您应该在pom.xml中添加下一行:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
答案 2 :(得分:0)
首先将其添加到pom文件中。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
第二,干净安装maven项目。 如果您使用的是eclipse,请检查您的JDK版本和Maven(有时使用jre代替jdk,因此,尽管在控制台中一切正常,但实际上并未下载jar) 简而言之,在完成maven构建后,.m2 repo应该具有此jar文件。
答案 3 :(得分:0)
当容器提供jdbc驱动程序时,作用域“运行时”对于单元测试和容器(例如tomcat等)非常有用。在运行独立应用程序(春季启动)时,应将其删除或设置为“编译”。