Spring Boot报错Failed to bind properties under ‘‘ to com.zaxxer.hikari.Hikari DataSource
最近在使用springboot时报了个错Failed to bind properties under '' to com.zaxxer.hikari.Hikari DataSource,经过分析和排查,最终将处理办法记录下来,并分享给大家。
问题描述
在使用 Spring Boot 连接 MySQL 或其他数据库时,出现以下错误:
-
***************************
-
APPLICATION FAILED TO START
-
***************************
-
-
Description:
-
-
Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource:
-
-
Property: driverclassname
-
Value: null
-
Origin: "driverClassName" from property source "source"
-
Reason: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalArgumentException: Could not load JDBC driver class [null]
-
-
Property: url
-
Value: null
-
Origin: "url" from property source "source"
-
Reason: Property 'url' threw exception; nested exception is java.lang.IllegalArgumentException: url is required.
-
-
Property: username
-
Value: null
-
Origin: "username" from property source "source"
-
Reason: Property 'username' threw exception; nested exception is java.lang.IllegalArgumentException: username is required.
-
-
Property: password
-
Value: null
-
Origin: "password" from property source "source"
-
Reason: Property 'password' threw exception; nested exception is java.lang.IllegalArgumentException: password is required.
分析原因
在 Spring Boot 中,我们需要在应用程序的配置文件(比如 application.yml 或 application.properties)中指定数据库连接的相关参数,例如 JDBC url、用户名、密码等。这个错误通常是由于配置文件中缺少或者没有指定正确的参数导致的。
解决方案
要解决这个错误,我们需要检查以下几点:
-
检查配置文件中的参数是否正确设置。比如,检查参数名是否拼写正确,数据库 url 是否正确等。
-
检查 Maven 依赖库是否正确加载。在使用 Spring Boot 连接数据库时,我们通常会使用某种 JDBC 驱动器。检查是否在 pom.xml 中正确地指定了 JDBC 驱动器的依赖。
-
如果已经安装了 MySQL/JDBC 驱动器,那么请检查环境变量和 Java 路径等是否正确配置。
下面我给出一段示例代码来说明如何在 Spring Boot 中使用 Hikari 连接池连接 MySQL 数据库。
在 pom.xml 文件中添加如下依赖:
-
<dependency>
-
<groupId>com.zaxxer</groupId>
-
<artifactId>HikariCP</artifactId>
-
<version>3.4.5</version>
-
</dependency>
-
-
<dependency>
-
<groupId>mysql</groupId>
-
<artifactId>mysql-connector-java</artifactId>
-
</dependency>
然后,在 application.yml 中添加以下配置:
-
spring:
-
datasource:
-
url: jdbc:mysql://127.0.0.1:3306/example
-
username: root
-
password: root
-
driver-class-name: com.mysql.cj.jdbc.Driver
-
hikari:
-
minimum-idle: 2
-
maximum-pool-size: 5
-
idle-timeout: 10000
-
pool-name: HikariCP
-
auto-commit: true
-
connection-timeout: 30000
-
connection-test-query: "SELECT 1"
在 Spring Boot 中,我们需要在代码中指定数据库连接池,比如 Hikari 连接池。因此,在 com.example.demo 包下创建一个名为 Config.java 的类,添加以下内容:
-
-
public class Config {
-
-
-
"spring.datasource.hikari")(prefix =
-
public HikariConfig hikariConfig() {
-
return new HikariConfig();
-
}
-
-
-
public DataSource dataSource() {
-
return new HikariDataSource(hikariConfig());
-
}
-
-
}
在这里,我们首先使用 @ConfigurationProperties 注解将 configuration 配置绑定到 Hikari 配置中,然后创建一个 DataSource 集合,将 Hikari 配置传递给其中的 HikariDataSource。DataSource 集合将被注入到 Spring Boot 应用程序中,从而使应用程序可以使用连接池。
此时,您可以在应用程序中使用 JdbcTemplate 与数据库进行交互,例如:
-
-
private JdbcTemplate jdbcTemplate;
-
-
public void query() {
-
String sql = "select * from example";
-
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
-
// do something with the result
-
}
如果一切设置正确,那么您现在应该可以正确连接并访问数据库了。
总结
在使用 Spring Boot 连接 MySQL 或其他数据库时,出现“Failed to bind properties under ‘’ to com.zaxxer.hikari.Hikari DataSource”错误可能是由于一些常见问题导致的。我们应该仔细检查配置文件、Maven 依赖库和环境变量是否正确设置,并且在代码中正确地使用数据库连接池。希望本文能够帮助您成功解决这个问题,在以后的开发过程中更加顺畅地使用 Spring Boot。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhifkfgf
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信提示登录环境异常是什么意思原因
PHP中文网 04-09 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
微信人名旁边有个图标有什么用
PHP中文网 03-11