【问题标题】:How to use PGProperty with HikariDataSource?如何将 PGProperty 与 HikariDataSource 一起使用?
【发布时间】:2021-04-21 10:30:15
【问题描述】:

我正在尝试弄清楚如何使用 PGProperty 属性来配置 hikari 数据源。

这很好用:

final String jdbcUrl = String.format(
            "jdbc:postgresql://%s:%s/%s?ApplicationName=%s",
            configuration.getDatabaseHost(),
            configuration.getDatabasePort(),
            configuration.getDatabaseName(),
            configuration.getDatabaseAppName());
hikariDataSource.setJdbcUrl(jdbcUrl);
hikariDataSource.setUsername(configuration.getDatabaseUsername());
hikariDataSource.setPassword(configuration.getDatabasePassword());
hikariDataSource.setMaximumPoolSize(configuration.getDatabaseMaximumPoolSize());

但我希望能够使用 PGProperty 来避免像上面那样手动构建 JDBC url。当我尝试这个时:

hikariDataSource.setDataSourceClassName("org.postgresql.ds.PGSimpleDataSource");
hikariDataSource.addDataSourceProperty(PGProperty.PG_HOST.getName(), configuration.getDatabaseHost());
hikariDataSource.addDataSourceProperty(PGProperty.PG_PORT.getName(), configuration.getDatabasePort());
hikariDataSource.addDataSourceProperty(PGProperty.PG_DBNAME.getName(), configuration.getDatabaseName());
hikariDataSource.addDataSourceProperty(PGProperty.APPLICATION_NAME.getName(), configuration.getDatabaseAppName());
hikariDataSource.addDataSourceProperty(PGProperty.USER.getName(), configuration.getDatabaseUsername());
hikariDataSource.addDataSourceProperty(PGProperty.PASSWORD.getName(), configuration.getDatabasePassword());

我收到此错误:

Property PGHOST does not exist on target class org.postgresql.ds.PGSimpleDataSource

https://jdbc.postgresql.org/documentation/publicapi/org/postgresql/PGProperty.html

【问题讨论】:

    标签: java postgresql hikaricp jdbi


    【解决方案1】:
        hikariDataSource.setJdbcUrl("jdbc:postgresql:");
        hikariDataSource.addDataSourceProperty(PGProperty.PG_HOST.getName(), configuration.getDatabaseHost());
        hikariDataSource.addDataSourceProperty(PGProperty.PG_PORT.getName(), configuration.getDatabasePort());
        hikariDataSource.addDataSourceProperty(PGProperty.PG_DBNAME.getName(), configuration.getDatabaseName());
        hikariDataSource.addDataSourceProperty(PGProperty.APPLICATION_NAME.getName(), configuration.getDatabaseAppName());
        hikariDataSource.addDataSourceProperty(PGProperty.USER.getName(), configuration.getDatabaseUsername());
        hikariDataSource.addDataSourceProperty(PGProperty.PASSWORD.getName(), configuration.getDatabasePassword());
        hikariDataSource.setMaximumPoolSize(configuration.getDatabaseMaximumPoolSize());
    

    【讨论】:

      猜你喜欢
      • 2021-01-02
      • 1970-01-01
      • 2023-03-13
      • 2014-09-25
      • 2016-01-30
      • 2015-12-13
      • 2020-09-15
      • 2020-06-03
      • 2020-11-05
      相关资源
      最近更新 更多