maven安装依赖报错testWhileIdle is true, validationQuery not set (DruidDataSource.java:795)
这个错误通常是由于在使用Druid数据源时未正确配置验证查询(validationQuery)导致的。验证查询是在连接池中获取连接时执行的SQL语句,用于验证连接是否有效。
要解决这个问题,你可以尝试以下步骤:
在你的数据源配置文件中,找到Druid数据源相关的配置项。
确保你已经正确配置了验证查询(validationQuery),这个配置项用于设置验证查询的SQL语句。例如,可以使用
SELECT 1
作为验证查询,表示执行一个简单的查询语句。确认配置的验证查询语句是有效的,可以在数据库中执行并返回结果。
重新运行程序,看看是否还会报错。
如果以上步骤仍然无法解决问题,你可以尝试以下额外的调试步骤:
确保你的数据库连接信息正确,包括用户名、密码、数据库地址等。
检查数据库是否正常运行,并确认数据库是否能够响应查询。
检查你使用的Druid版本是否最新,如果不是最新版本,尝试升级到最新版本。
希望能帮到你解决问题!如果还有其他问题,请随时提问。
maven testWhileIdle is true, validationQuery not set (DruidDataSource.java:795)
这个问题是由Druid数据源配置中的maven testWhileIdle属性设置为true,但是validationQuery属性没有被设置引起的。testWhileIdle属性会在连接空闲时执行测试查询来保持连接的活跃状态,而validationQuery属性则用于指定测试查询语句。因此,解决这个问题的方法是同时设置validationQuery属性,例如:
<property name="validationQuery" value="SELECT 1" />
这个例子中,我们使用"SELECT 1"作为测试查询语句。你可以根据你的数据库类型和需要执行的查询语句来设置合适的值。
2025-03-11 17:02:00.073 ERROR 29052 --- [ task-1] com.alibaba.druid.pool.DruidDataSource : testWhileIdle is true, validationQuery not set
Druid 数据源配置 testWhileIdle
和 validationQuery
当使用阿里云的 Druid 数据库连接池时,如果设置了 testWhileIdle=true
或者 testOnBorrow=true
,则必须提供一个有效的 validationQuery
来验证数据库连接的有效性。否则会触发错误提示 validationQuery not set
[^1]。
配置解决方案
为了修复这个问题,在应用程序的配置文件(通常是 application.yml
或 application.properties
文件)中添加或修改如下参数:
对于 YAML 格式的配置文件 (application.yml
):
spring:
datasource:
druid:
test-on-borrow: false # 可选,默认false;设为false可以绕过此问题,但不推荐长期如此操作
test-while-idle: true # 如果确实需要开启这个选项,则继续往下看如何设置validationQuery
validation-query: SELECT 1 FROM DUAL # MySQL/Oracle适用; 对于其他类型的数据库,请查阅相应的简单查询语句
对于 Properties 格式的配置文件 (application.properties
):
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
注意:不同的数据库管理系统可能有不同的测试查询命令。例如,SQL Server 使用 SELECT 1
而不是 SELECT 1 FROM DUAL
[^2]。
此外,确保项目已经包含了正确的 Druid 依赖项。根据提供的信息来看,应该包含的是 druid-spring-boot-starter
版本 1.1.9 的 Maven 依赖声明[^4]。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
通过上述调整,应当能够有效解决由于缺少 validationQuery
设置而引发的数据源初始化失败的问题。
相关推荐














