【问题标题】:HikariDataSource closeHikariDataSource 关闭
【发布时间】:2018-07-12 22:59:54
【问题描述】:

我已经实现了运行良好的 HikariCP,我现在正计划正常关闭我的应用程序,我想让 HikariCP 正确关闭数据库连接,而不仅仅是杀死 java 应用程序。 我在谷歌上阅读,我可以看到 HikariDataSource 应该有一个 close 方法....但实际上我看不到它可用:

private static DataSoure ds;
:
public blabla() {
    HikariConfig config = new HikariConfig();
    config.setJdbc(jdbcURL);
    :
    ds = new HikariDataSource(config)

在 Eclipse 中,如果我尝试 ds.close()... Eclipse 不会将“关闭”显示为 HikariDataSource 的有效方法:

我做错了吗?可能......关于如何让 HikariCP 正确关闭数据库连接的任何想法?

谢谢, 赫利奥

【问题讨论】:

  • close()valid method 上的HikariDataSource,所以应该没问题。您使用的是什么版本,并且您确定导入了正确的类? (顺便说一句,它是可自动关闭的,因此您还应该能够更整齐地将其包装在 try with resources 语句中。)
  • 嗨@MichaelBerry ...我使用的是2.7.8,然后我改为3.2.0。两者都没有向我展示一个有效的方法......真的不明白...... :-(当我尝试选择方法 close() 时,我已经更新了文本并添加了 Eclipse 的图片......你可以看到它不是我的选择......
  • Doh,我完全错过了代码 sn-p 中的字段定义 - 答案是正确的,您需要将字段类型声明为 HikariDataSource 而不是 DataSource。教我在我应该睡着的时候看编程问题!
  • 谢谢@MichaelBerry :-) 我应该睡着了,因为我不知道我为什么这样做......

标签: java hikaricp


【解决方案1】:

您将ds 声明为javax.sql.DataSource 并将其分配为HikariDataSource。这样您将无法访问 HikariDataSource 本机方法。

((HikariDataSource)ds).close();

会成功的。

【讨论】:

  • ..或者只是将ds字段的类型声明为HikariDataSource当然开始。
  • 是的!你完全正确!不知道我为什么这样做:(非常感谢!
猜你喜欢
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
  • 2016-06-09
  • 1970-01-01
  • 2017-10-07
  • 1970-01-01
  • 2021-10-11
相关资源
最近更新 更多