HikariCP 地址规范和文档

HikariCP Address Specification and Documentation

因此,在搜索 Google 和 Github 寻找答案后,我对大多数人如何知道如何使用 HikariCP 感到困惑。我似乎找不到任何关于 HikariCP 的直接文档。

我的问题是:如何在没有 JDBC URL 的情况下指定主机地址? Github 上的 main page of HikariCP 明确表示 JDBC URL 规范是可选的,而是简单地使用 HikariConfig#setDataSourceClassName(String)。但是,我对如何指定我的地址感到困惑,而且我似乎无法在任何地方找到答案。与 SQLite 一样,我应该在哪里指定数据库文件的路径?

这是我目前拥有的代码:

final HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setPoolName("SQLite");
hikariConfig.setDataSourceClassName("org.sqlite.SQLiteDataSource");

HikariDataSource ds = new HikariDataSource(hikariConfig);

如果我不使用 HikariCP,我会像这样简单地指定 JDBC URL: jdbc:sqlite:path/to/database.db。但是,如何在不使用 JDBC URL 的情况下执行此操作?

感谢您的帮助。

当您使用 DataSource 样式而不是 URL 样式配置时,所有数据源属性都会转换为 DataSource class 上的设置器。因此,由于您似乎正在使用 org.sqlite.SQLiteDataSource,因此 class 上的各种设置器是相关的。

这里是一个例子,不仅设置了DataSource的URL,还设置了Journal Mode并启用全列名支持。

final HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setPoolName("SQLite");
hikariConfig.setDataSourceClassName("org.sqlite.SQLiteDataSource");
hikariConfig.addDataSourceProperty("url", "jdbc:sqlite:C:/work/mydatabase.db");
hikariConfig.addDataSourceProperty("journalMode", "WAL");
hikariConfig.addDataSourceProperty("fullColumnNames", "true");

HikariDataSource ds = new HikariDataSource(hikariConfig);

DataSource 样式更可取的原因有两个:

  • 反射的使用确保 属性 名称中的任何拼写错误都会导致失败。然而,在 JDBC URL 本身中指定拼写错误的属性通常会被驱动程序忽略。
  • 当指定了大量的属性时,JDBC URL 连接字符串可能会变得非常长——对于某些驱动程序来说有数百个字符——这使得 reading/understanding属性其实设置起来极其繁琐