【问题标题】:HikariPool vs HikariDataSourceHikariPool vs HikariDataSource
【发布时间】:2016-06-09 05:59:35
【问题描述】:

我将在我的 WEB 应用程序中使用 HikariCP 而不是 c3p0。好像,超级棒但对我来说,HikariCP 界面中仍然存在有问题的地方。它包含两个类——HikariPool 和 HikariDataSource,它们包含几乎相似的功能。查看源代码,我发现 HikariDataSource 就像 HikariPool 的包装器。例如,请在下面找到有趣的代码部分:

HikariConfig 配置 = 新的 HikariConfig(); config.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/mydb?user=aaa&password=xxx&autoReconnectForPools=true&autoReconnect=true&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8"); config.setMaximumPoolSize(20); config.setMinimumIdle(2); HikariPool pool = new HikariPool(config);//使用 HikariPool 类 // HikariDataSource pool = new HikariDataSource(config);// 使用 HikariDataSource 类 尝试(连接连接 = pool.getConnection();){ // 执行一些查询... }

这两个类都运行良好。 那么问题来了:最推荐使用哪一种,为什么?

提前谢谢你,

西蒙

【问题讨论】:

    标签: hikaricp


    【解决方案1】:

    正确的方法 (API) 是始终从data source 获取连接:

    HikariDataSource hds = new HikariDataSource(config);
    hds.getConnection()
    

    通过对 API 进行编码而不是实现来保护。
    HikariPool 不是数据源。它被 HikariDataSource 使用。

    【讨论】:

    • 但是,请注意 HikariPool 包含一些有时需要的有用方法(例如 getActiveConnections() 和 getTotalConnections())。这些呢?如何从 HikariDataSource 访问它们?
    • 通过在 JMX github.com/brettwooldridge/HikariCP/wiki/…987654322@ 中注册 HikariPoolMXBean 来访问这些方法
    猜你喜欢
    • 2020-11-25
    • 2015-02-11
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 2018-08-27
    • 2021-10-11
    相关资源
    最近更新 更多