You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求支持connectionInitSql且兼容Hikari的PostgreSQL JDBC驱动

解答:无需额外驱动,用Hikari自带配置即可实现需求

首先明确:目前主流的PostgreSQL JDBC驱动(包括官方驱动)都没有connectionInitSql这个属性,你不需要去寻找第三方驱动——因为Hikari连接池本身就提供了初始化连接的配置项,完全可以替代这个需求。

你遇到报错的原因很直接:org.postgresql.ds.PGSimpleDataSource类确实没有connectionInitSql这个属性,Hikari的PropertyElf工具类尝试给不存在的属性赋值,自然抛出异常。

正确的配置方式

直接使用HikariConfig自带的setConnectionInitSql方法来设置连接初始化SQL,而不是通过addDataSourceProperty传递给PostgreSQL数据源:

HikariConfig config = new HikariConfig();
config.setDataSourceClassName("org.postgresql.ds.PGSimpleDataSource");
// 直接用Hikari的配置方法设置初始化SQL
config.setConnectionInitSql("SET ROLE admin");
HikariDataSource hikariDataSource = new HikariDataSource(config);

额外说明

如果出于某些特殊原因,你一定要在数据源层面处理连接初始化,可以自定义一个PGSimpleDataSource的子类,添加connectionInitSql属性,并在getConnection方法中执行对应的SQL,但这种做法完全没必要——Hikari的原生配置已经完美解决这个问题,而且更符合连接池的设计逻辑。

内容的提问来源于stack exchange,提问作者Daniel Scott

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:04:48