2024年的 Clojure 调查问卷中分享您的想法!

欢迎!有关此功能的更多信息,请参阅关于页面。

0
java.jdbc

你好

在 java.jdbc 中,当使用原始连接 uri 时,无法传递属性,这些属性必须是 uri 的一部分,除了用户名和密码,可以从 db-spec 中获取,因为存在一个特定的 DriverManager 构造函数用于获取用户名和密码。然而,DriverManager 还提供了一个构造函数,可以提供任何属性,包括用户名和密码。使用该构造函数是否可能?以下是更改的示例:https://github.com/dmcgillen/java.jdbc/commit/95edd36997320d8dc6882ea371d88c901e49f465#diff-3a9a3475f16407a50d922fad53957b01L293

在这背景下,我提到的是自从我一直在使用 AWS Secrets Manager JDBC 包装器以来,将其作为连接 uri。我仍希望提供其他 JDBC 属性,但它们应像我上面提到的更改那样提供,看起来支持这种方式传递属性是一个好主意。

如果应该在这里发布而不是创建一个 JIRA,请告诉我,如果这个更改是一个好主意,我可以这样做。

谢谢

1 答案

+1

被选中
 
最佳答案

根据 clojure.java.jdbc 的说明文档:此项目标记为“稳定”状态(已不再“活跃”)。它已被 seancorfield/next.jdbc 取代。

next.jdbc 使用了不同的方法来创建数据源和连接,因此我认为你可能会遇到类似的问题,但我愿意在该项目中对此进行改进。欢迎在那里创建 GitHub 问题进行讨论。

_by
https://github.com/seancorfield/next-jdbc/issues/66

我认为允许一个包含 :jdbcUrl 的 db-spec(与 ->pool 使用方式匹配)将解决此问题。
_by
seancorfield/next.jdbc 1.0.8 已经在 Clojars 上发布,新增了此功能。
_by
真遗憾,看来我错过了这个机会!谢谢您这么快就将其添加到 next.jdbc 中,知道我们开始使用它时会有支持真是太好了。
_by
为了其他人的方便,只需使用 clojure.java.jdbc 支持的数据源。我们已经实现了在使用连接池的地方,但是我们有一些应用没有使用连接池,但它们仍然可以使用数据源运行。

对于这些应用,我们正在使用 next.jdbc 的 get-datasource 函数创建数据源(包含上述更改,因此我们可以使用具有属性的 jdbc uri,谢谢!)但是直到我们可以迁移时,我们仍然使用此数据源与 clojure.java.jdbc 进行交互。
by
很高兴看到这段代码对Donovan有用!我们的项目也是一个混合的c.j.j. / next.jdbc商店,所有(遗留)代码都有c3p0连接池,所以我们只是在next.jdbc函数中传入(:datasource pooled-db)。
...