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属性其实设置起来极其繁琐
因此,在搜索 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属性其实设置起来极其繁琐