• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Spring Boot报错Failed to bind properties under ‘‘ to com.zaxxer.hikari.Hikari DataSource

武飞扬头像
lishiyueup
帮助3

最近在使用springboot时报了个错Failed to bind properties under '' to com.zaxxer.hikari.Hikari DataSource,经过分析和排查,最终将处理办法记录下来,并分享给大家。

问题描述

在使用 Spring Boot 连接 MySQL 或其他数据库时,出现以下错误:

  1.  
    ***************************
  2.  
    APPLICATION FAILED TO START
  3.  
    ***************************
  4.  
     
  5.  
    Description:
  6.  
     
  7.  
    Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource:
  8.  
     
  9.  
    Property: driverclassname
  10.  
    Value: null
  11.  
    Origin: "driverClassName" from property source "source"
  12.  
    Reason: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalArgumentException: Could not load JDBC driver class [null]
  13.  
     
  14.  
    Property: url
  15.  
    Value: null
  16.  
    Origin: "url" from property source "source"
  17.  
    Reason: Property 'url' threw exception; nested exception is java.lang.IllegalArgumentException: url is required.
  18.  
     
  19.  
    Property: username
  20.  
    Value: null
  21.  
    Origin: "username" from property source "source"
  22.  
    Reason: Property 'username' threw exception; nested exception is java.lang.IllegalArgumentException: username is required.
  23.  
     
  24.  
    Property: password
  25.  
    Value: null
  26.  
    Origin: "password" from property source "source"
  27.  
    Reason: Property 'password' threw exception; nested exception is java.lang.IllegalArgumentException: password is required.
学新通

分析原因

在 Spring Boot 中,我们需要在应用程序的配置文件(比如 application.yml 或 application.properties)中指定数据库连接的相关参数,例如 JDBC url、用户名、密码等。这个错误通常是由于配置文件中缺少或者没有指定正确的参数导致的。

解决方案

要解决这个错误,我们需要检查以下几点:

  1. 检查配置文件中的参数是否正确设置。比如,检查参数名是否拼写正确,数据库 url 是否正确等。

  2. 检查 Maven 依赖库是否正确加载。在使用 Spring Boot 连接数据库时,我们通常会使用某种 JDBC 驱动器。检查是否在 pom.xml 中正确地指定了 JDBC 驱动器的依赖。

  3. 如果已经安装了 MySQL/JDBC 驱动器,那么请检查环境变量和 Java 路径等是否正确配置。

下面我给出一段示例代码来说明如何在 Spring Boot 中使用 Hikari 连接池连接 MySQL 数据库。

在 pom.xml 文件中添加如下依赖:

  1.  
    <dependency>
  2.  
    <groupId>com.zaxxer</groupId>
  3.  
    <artifactId>HikariCP</artifactId>
  4.  
    <version>3.4.5</version>
  5.  
    </dependency>
  6.  
     
  7.  
    <dependency>
  8.  
    <groupId>mysql</groupId>
  9.  
    <artifactId>mysql-connector-java</artifactId>
  10.  
    </dependency>

然后,在 application.yml 中添加以下配置:

  1.  
    spring:
  2.  
    datasource:
  3.  
    url: jdbc:mysql://127.0.0.1:3306/example
  4.  
    username: root
  5.  
    password: root
  6.  
    driver-class-name: com.mysql.cj.jdbc.Driver
  7.  
    hikari:
  8.  
    minimum-idle: 2
  9.  
    maximum-pool-size: 5
  10.  
    idle-timeout: 10000
  11.  
    pool-name: HikariCP
  12.  
    auto-commit: true
  13.  
    connection-timeout: 30000
  14.  
    connection-test-query: "SELECT 1"

在 Spring Boot 中,我们需要在代码中指定数据库连接池,比如 Hikari 连接池。因此,在 com.example.demo 包下创建一个名为 Config.java 的类,添加以下内容:

  1.  
    @Configuration
  2.  
    public class Config {
  3.  
     
  4.  
    @Bean
  5.  
    @ConfigurationProperties(prefix = "spring.datasource.hikari")
  6.  
    public HikariConfig hikariConfig() {
  7.  
    return new HikariConfig();
  8.  
    }
  9.  
     
  10.  
    @Bean
  11.  
    public DataSource dataSource() {
  12.  
    return new HikariDataSource(hikariConfig());
  13.  
    }
  14.  
     
  15.  
    }
学新通

在这里,我们首先使用 @ConfigurationProperties 注解将 configuration 配置绑定到 Hikari 配置中,然后创建一个 DataSource 集合,将 Hikari 配置传递给其中的 HikariDataSource。DataSource 集合将被注入到 Spring Boot 应用程序中,从而使应用程序可以使用连接池。

此时,您可以在应用程序中使用 JdbcTemplate 与数据库进行交互,例如:

  1.  
    @Autowired
  2.  
    private JdbcTemplate jdbcTemplate;
  3.  
     
  4.  
    public void query() {
  5.  
    String sql = "select * from example";
  6.  
    List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
  7.  
    // do something with the result
  8.  
    }

如果一切设置正确,那么您现在应该可以正确连接并访问数据库了。

总结

在使用 Spring Boot 连接 MySQL 或其他数据库时,出现“Failed to bind properties under ‘’ to com.zaxxer.hikari.Hikari DataSource”错误可能是由于一些常见问题导致的。我们应该仔细检查配置文件、Maven 依赖库和环境变量是否正确设置,并且在代码中正确地使用数据库连接池。希望本文能够帮助您成功解决这个问题,在以后的开发过程中更加顺畅地使用 Spring Boot。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhifkfgf
系列文章
更多 icon
同类精品
更多 icon
继续加载