gpt4 book ai didi

java - HikariCP 地址规范和文档

转载 作者:行者123 更新时间:2023-11-29 10:39:46 25 4
gpt4 key购买 nike

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

我的问题是:如何在没有 JDBC URL 的情况下指定主机地址? main page of HikariCP Github 上明确指出 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 类上的 setter。所以,既然您似乎正在使用 org.sqlite.SQLiteDataSource ,该类上的各种 setter 都是相关的。

下面是一个示例,不仅设置数据源的 URL,还设置日记模式并启用完整列名支持。

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);

数据源样式更可取的原因有两个:

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

关于java - HikariCP 地址规范和文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45720269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com