解决Spring Boot项目中数据源URL属性的问题

14 篇文章 1 订阅
11 篇文章 0 订阅

今天测试Springboot项目的时候,报错:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
[32m :: Spring Boot :: [39m              [2m (v3.2.1)[0;39m

[2m2024-01-09T10:21:04.750+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mcom.example.demo.AppApplication         [0;39m [2m:[0;39m Starting AppApplication using Java 17.0.9 with PID 8256 (C:\Users\Admin\Documents\workspace-spring-tool-suite-4\App\target\classes started by Admin in C:\Users\Admin\Documents\workspace-spring-tool-suite-4\App)
[2m2024-01-09T10:21:04.764+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mcom.example.demo.AppApplication         [0;39m [2m:[0;39m No active profile set, falling back to 1 default profile: "default"
[2m2024-01-09T10:21:07.178+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Bootstrapping Spring Data JPA repositories in DEFAULT mode.
[2m2024-01-09T10:21:07.267+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36m.s.d.r.c.RepositoryConfigurationDelegate[0;39m [2m:[0;39m Finished Spring Data repository scanning in 53 ms. Found 0 JPA repository interfaces.
[2m2024-01-09T10:21:09.237+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.s.b.w.embedded.tomcat.TomcatWebServer [0;39m [2m:[0;39m Tomcat initialized with port 8080 (http)
[2m2024-01-09T10:21:09.294+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardService  [0;39m [2m:[0;39m Starting service [Tomcat]
[2m2024-01-09T10:21:09.296+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardEngine   [0;39m [2m:[0;39m Starting Servlet engine: [Apache Tomcat/10.1.17]
[2m2024-01-09T10:21:09.613+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.a.c.c.C.[Tomcat].[localhost].[/]      [0;39m [2m:[0;39m Initializing Spring embedded WebApplicationContext
[2m2024-01-09T10:21:09.615+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mw.s.c.ServletWebServerApplicationContext[0;39m [2m:[0;39m Root WebApplicationContext: initialization completed in 4553 ms
[2m2024-01-09T10:21:10.030+01:00[0;39m [33m WARN[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mConfigServletWebServerApplicationContext[0;39m [2m:[0;39m Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Unsatisfied dependency expressed through method 'dataSourceScriptDatabaseInitializer' parameter 0: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception with message: Failed to determine a suitable driver class
[2m2024-01-09T10:21:10.043+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.apache.catalina.core.StandardService  [0;39m [2m:[0;39m Stopping service [Tomcat]
[2m2024-01-09T10:21:10.122+01:00[0;39m [32m INFO[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36m.s.b.a.l.ConditionEvaluationReportLogger[0;39m [2m:[0;39m 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
[2m2024-01-09T10:21:10.197+01:00[0;39m [31mERROR[0;39m [35m8256[0;39m [2m---[0;39m [2m[           main][0;39m [2m[0;39m[36mo.s.b.d.LoggingFailureAnalysisReporter  [0;39m [2m:[0;39m 

***************************
APPLICATION FAILED TO START
***************************

描述:

未能配置数据源: 没有指定'url'属性,也无法配置嵌入式数据源。

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

建议操作:

请考虑以下几点:
    如需使用嵌入式数据库(如H2、HSQL或Derby),请确保已将其添加到类路径中。
    如果你有需要从特定配置文件加载的数据库设置,可能需要激活对应的配置文件(当前没有激活的配置文件)。

这个原因通常是因为:

“无法确定合适的驱动程序类”。这通常是因为没有为数据源指定一个驱动类或者没有在类路径中包含相应的数据库驱动。错误信息显示为:“无法确定合适的驱动程序类”。这通常是因为没有为数据源指定一个驱动类或者没有在类路径中包含相应的数据库驱动。

那解决的方法有:

第一种:

   使用的是MySQL,需要在您的pom.xml文件中包含MySQL的JDBC驱动依赖。如下:

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

  在application.properties或application.yml文件中,确保您已经指定了spring.datasource.url属性。例如,对于MySQL;

spring.datasource.url=jdbc:mysql://localhost:3306/yourdbname

 

第二种:

  • 如果您使用的是嵌入式的数据库(如 H2、HSQL 或 Derby),那就要将其添加到类路径中。
  • 如果您有需要从特定配置文件加载的数据库设置,可能需要激活该配置文件(当前没有激活的配置文件)。

步骤如下:

第一步,再开始开发应用程序,你快速启动之前,可以向项目依赖中添加一个内存数据库库。比如,在您的 pom.xml 文件的 <dependencies> 部分加入 H2 数据库依赖:

如下:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

这种设置通常无需额外配置即可工作,满足了上述描述中的要求:“将其放到类路径上”。但请注意,切勿在生产环境中使用这种方式部署内存数据库。

第三种:添加外部数据库到项目中

作为一种更稳健的解决方案,您可以添加一个外部数据库,如 PostgreSQL。使用 Maven 构建时,在您的 <dependencies> 部分添加以下依赖:

<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.3.1</version>
</dependency>

设置好后,您需要安装、配置并运行一个本地或远程的 PostgreSQL 实例。

如果已有运行中的 PostgreSQL 实例,下一步就是配置 Spring 应用以连接到这个 PostgreSQL 实例。在 src/main/resources 目录下创建或打开 application.properties 文件,添加如下配置:

spring.datasource.url=jdbc:postgresql://localhost:5432/testdb
spring.datasource.username=postgres-user
spring.datasource.password=postgres-password
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect

请根据实际情况替换 localhost5432postgres-user 和 postgres-password 这些默认值。

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丘比特惩罚陆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值