相关推荐recommended
项目启动报错:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath
作者:mmseoamin日期:2024-04-30

Action:    

    Consider the following:

        If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.

        If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

项目启动报错:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath,第1张

情况1:在配置文件中连接数据库但是url没有配置,正确书写配置文件(yml或prooerties文件)中的url路径

情况2: 没有用到数据库,但是依赖了数据库相关的依赖,如果没有用到数据库,看下pom依赖是否用到了数据库的依赖,或者间接依赖了数据库的依赖,去掉即可。

情况3:也就是我遇到的问题:yml文件中的缩进问题,将每一行的缩进调整好,下面两图左边不会报错右边就会报错。

造成这个错误的主要原因是加载依赖有数据库,但实际没有配置数据库。

配置数据库,分别有两种配置方法,任选一种即可:

一、直接在application.properties里面配置

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/af_school?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456

项目启动报错:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath,第2张

二、创建yml文件,在yml文件里配置数据库。

1、按如下配置yml文件模板,文件名随意,扩展名为yml

项目启动报错:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath,第3张

在resources里创建application.yml配置文件,在文件里拷贝如下配置代码

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/af_school?useUnicode=true&characterEncoding=utf8
    username: root
    password: 123
    driver-class-name: com.mysql.cj.jdbc.Driver

项目启动报错:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath,第4张

配置文件application.yml里注意事项,否则配置不起作用:

注意缩进!!!

每个冒号后要有一个空格,代码要分层次:detesource前一个空格,以下代码前两个空格。

项目启动报错:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath,第5张