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包装器,它使用secret id作为连接URI以来,这个问题就出现了。我仍然希望提供其他JDBC属性,但它们需要按照上面的更改方式提供,这似乎是一个很好的主意来支持以这种方式传递属性。

请告诉我是否应该创建一个JIRA而非在此处发布,如果这是一个好主意,我当然会这样做。

谢谢

1 答案

+1

已选中
 
最佳答案

根据clojure.java.jdbc的说明文件:该项目已“稳定”,不再是“活跃”。它实际上已被seancorfield/next.jdbc所取代。

next.jdbc在创建数据源和连接方面采取了不同的方法,因此我认为您可能会遇到类似的问题。但我在那个项目中愿意做出一些改进。您可以在此处创建GitHub问题以进行讨论。

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

我认为允许包含:jdbcUrl(与->pool使用匹配)的db-spec将提供解决此问题的方法。
seancorfield/next.jdbc 1.0.8已在Clojars上发布,并添加了此新功能。
真遗憾,看来我错过了这次机会!感谢您将这一新特性迅速添加到next.jdbc中,好的,知道我们开始使用它时将得到支持。
为了其他人的利益,只需使用 clojure.java.jdbc 支持的数据源。我们原本就在使用连接池的地方,但我们有一些应用不使用池,但它们仍然可以使用数据源来工作。

对于这些应用,我们使用 next.jdbc 的 get-datasource 函数来创建数据源(其中包含上述更改,因此我们可以使用带有属性的手动 jdbc uri,感谢!),但直到我们能迁移时,仍然使用 clojure.java.jdbc 访问这个数据源。
很高兴看到你在Donovan方面取得了进展!我们也是一个混合的 c.j.j. / next.jdbc 店铺,并且我们使用c3p0连接池为所有(旧有)代码,所以我们只是将 (:datasource pooled-db) 传递给 next.jdbc 函数。
...