Spring Boot JPA MySQL:无法确定合适的驱动程序类

新手上路,请多包涵

我正在使用 Spring Boot JPA 创建一个应用程序,我正在使用 MySQL 作为数据库。

以下是我的 application.properties

 spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect

我添加了以下依赖项

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

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

当我签入调试日志时,我可以在我的类路径中看到 mysql java 连接器,但仍然出现以下错误

2019-07-29 10:03:00.742 INFO 10356 — [main] oaccC[Tomcat].[localhost].[/]:初始化 Spring 嵌入式 WebApplicationContext 2019-07-29 10:03:00.742 INFO 10356 — [主] osweb.context.ContextLoader:根 WebApplicationContext:初始化在 1534 毫秒内完成 2019-07-29 10:03:00.789 WARN 10356 — [主] ConfigServletWebServerApplicationContext:在上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework .beans.factory.UnsatisfiedDependencyException:创建名为“org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration”的bean时出错:通过构造函数参数0表示的不满足的依赖关系;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在类路径资源 [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration\(Hikari.class\] 中定义名称为“dataSource”的 bean 创建时出错:通过工厂方法进行 Bean 实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 \[com.zaxxer.hikari.HikariDataSource\]:工厂方法 'dataSource' 抛出异常;嵌套异常是 org.springframework.boot.autoconfigure.jdbc.DataSourceProperties\)DataSourceBeanCreationException:无法确定合适的驱动程序类 2019-07-29 10:03:00.789 INFO 10356 — [main] o.apache.catalina.core。 StandardService:停止服务 [Tomcat] 2019-07-29 10:03:00.805 INFO 10356 — [main] ConditionEvaluationReportLoggingListener:

启动 ApplicationContext 时出错。要显示条件报告,请在启用“调试”的情况下重新运行您的应用程序。 2019-07-29 10:03:00.805 错误 10356 — [主要] osbdLoggingFailureAnalysisReporter:

\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* 应用程序无法启动


描述:

无法配置数据源:未指定“url”属性,并且无法配置嵌入式数据源。

原因:无法确定合适的驱动程序类

行动:

考虑以下几点:如果您想要一个嵌入式数据库(H2、HSQL 或 Derby),请将其放在类路径中。如果您有要从特定配置文件加载的数据库设置,您可能需要激活它(当前没有配置文件处于活动状态)。

原文由 Anuj Mehta 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 813
2 个回答

这是我无法检测到的配置中的一些错误,我重新创建了相同的项目并且事情开始工作了

原文由 Anuj Mehta 发布,翻译遵循 CC BY-SA 4.0 许可协议

Spring Boot 自动配置尝试根据添加到类路径的依赖项自动配置 bean。由于您的类路径具有 JPA 依赖项,因此 Spring Boot 尝试自动配置 JPA 数据源。问题是,您没有向 Spring 提供执行自动配置所需的完整信息。

将此缺少的属性添加到您的 application.properties 文件中,以便 spring 可以自动配置

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

您可以通过使用实用程序构建器类 DataSourceBuilder 以编程方式定义数据源的另一种方法。为此,您需要提供数据库 URL、用户名、密码和 SQL 驱动程序信息来创建数据源:

 @Configuration
public class DatasourceConfig {
    @Bean
    public DataSource datasource() {
        return DataSourceBuilder.create()
                .driverClassName("com.mysql.cj.jdbc.Driver")
                .url("jdbc:mysql://localhost:3306/myDb")
                .username("root")
                .password("pass")
                .build();
    }
}

原文由 rimonmostafiz 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题