testWhileIdle is true, validationQuery not set 10-Sep-2025 14:35:28.305 警告 [RMI TCP Connection(3)-127.0.0.1] com.huawei.opengauss.jdbc.Driver.parseURL JDBC URL invalid port number: null 2025-09-10 14:35:28.313|RMI TCP Connection(3)-127.0.0.1|ERROR|com.alibaba.druid.pool.DruidDataSource|init|936|init datasource error, url: jdbc:opengauss://null:null/postgres?currentSchema=emergencymanage java.sql.SQLException: connect error, url jdbc:opengauss://null:null/postgres?currentSchema=emergencymanage, driverClass com.huawei.opengauss.jdbc.Driver at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1713) at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:932)
时间: 2025-09-10 11:07:37 AIGC 浏览: 3
### 解决 `testWhileIdle is true, validationQuery not set` 警告
当出现 `testWhileIdle is true, validationQuery not set` 警告时,意味着连接池在空闲连接测试时开启了 `testWhileIdle` 选项,但没有设置 `validationQuery`。`validationQuery` 用于在连接被从连接池取出使用之前验证连接是否有效。
要解决这个问题,需要在连接池配置中添加 `validationQuery`。以下是不同配置方式的示例:
#### Spring Boot 配置
在 `application.properties` 中添加以下配置:
```properties
spring.datasource.hikari.validation-query=SELECT 1
```
或者在 `application.yml` 中添加:
```yaml
spring:
datasource:
hikari:
validation-query: SELECT 1
```
#### 手动配置连接池
如果是手动配置连接池,示例代码如下:
```java
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
public class DataSourceConfig {
public static HikariDataSource getDataSource() {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:opengauss://your_host:your_port/your_database");
config.setUsername("your_username");
config.setPassword("your_password");
config.setValidationQuery("SELECT 1"); // 设置 validationQuery
return new HikariDataSource(config);
}
}
```
### 解决 `JDBC URL invalid port number: null` 连接错误
此错误表明 JDBC URL 中没有正确设置端口号。确保 JDBC URL 格式正确,包含有效的主机名和端口号。
正确的 JDBC URL 格式示例:
```properties
jdbc:opengauss://localhost:5432/your_database
```
在 Spring Boot 的 `application.properties` 中配置示例:
```properties
spring.datasource.url=jdbc:opengauss://localhost:5432/your_database
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.huawei.opengauss.jdbc.Driver
```
或者在 `application.yml` 中配置:
```yaml
spring:
datasource:
url: jdbc:opengauss://localhost:5432/your_database
username: your_username
password: your_password
driver-class-name: com.huawei.opengauss.jdbc.Driver
```
### 总结
通过设置 `validationQuery` 可以解决 `testWhileIdle is true, validationQuery not set` 警告,同时确保 JDBC URL 包含有效的端口号可以解决 `JDBC URL invalid port number: null` 连接错误。
阅读全文
相关推荐












