适用于 Oracle 的 HikariConfig 池

Posted

技术标签:

【中文标题】适用于 Oracle 的 HikariConfig 池【英文标题】:HikariConfig pool for Oracle 【发布时间】:2018-02-17 09:59:22 【问题描述】:

我想为 Oracle 配置 HikariConfig 池:

Properties props = new Properties();
        props.setProperty("dataSourceClassName",     "oracle.jdbc.driver.OracleDriver");
        props.setProperty("dataSource.user",         bundle.getString("db.user"));
        props.setProperty("dataSource.password",     bundle.getString("db.password"));
        props.setProperty("dataSource.databaseName", "xe");

        config = new HikariConfig(props);
        ds = new HikariDataSource(config);

但我得到了这个错误

Exception in thread "main" java.lang.RuntimeException: java.lang.ClassCastException: Cannot cast oracle.jdbc.driver.OracleDriver to javax.sql.DataSource
    at com.zaxxer.hikari.util.UtilityElf.createInstance(UtilityElf.java:93)
    at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:339)
    at com.zaxxer.hikari.pool.PoolBase.<init>(PoolBase.java:118)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:106)
    at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:72)
    at 

【问题讨论】:

【参考方案1】:

您正在尝试将驱动程序设置为数据源类。

我就是这样做的,

        HikariConfig config = new HikariConfig();
        config.setMaximumPoolSize(10);
        config.setMinimumIdle(5);
        config.setDriverClassName("org.hsqldb.jdbc.JDBCDriver");
        config.setJdbcUrl("jdbc:hsqldb:hsql://localhost/");
        config.addDataSourceProperty("user", "SA");
        config.addDataSourceProperty("password", "");

        HikariDataSource ds = new HikariDataSource(config);
        System.out.print("Data source created");
        Connection conn = ds.getConnection();

【讨论】:

以上是关于适用于 Oracle 的 HikariConfig 池的主要内容,如果未能解决你的问题,请参考以下文章

HikariConfig配置详解

适用于 mac 的 Oracle gui 界面 [关闭]

-XX:+HeapDumpOnOutOfMemoryError 选项是不是适用于 Oracle 应用服务器?

如何配置 HikariConfig 提供的属性 TCP KEEP_ALIVE

关于实时统计 oracle 19c 仅适用于特定表

适用于 Oracle 数据库的 SSDT 等效项