2024年度Clojure调查! 中分享您的想法。

欢迎!请在关于页面获取更多关于如何使用本站的信息。

0
java.jdbc

大家好

在 java.jdbc 中,当使用原始连接URI时,不能传递属性,除了可以从 db-spec 中获取的用户名和密码,因为有一个接受用户名和密码的 DriverManager 构造函数。不过,DriverManager 还提供了一个构造函数,可以提供任何属性,包括用户名和密码。能否使用该构造函数?以下是更改后的样子:[https://github.com/dmcgillen/java.jdbc/commit/95edd36997320d8dc6882ea371d88c901e49f465#diff-3a9a3475f16407a50d922fad53957b01L293](https://github.com/dmcgillen/java.jdbc/commit/95edd36997320d8dc6882ea371d88c901e49f465#diff-3a9a3475f16407a50d922fad53957b01L293)。

为了了解背景,这是因为我一直在使用 AWS Secrets Manager JDBC 包装器,它将以秘密ID作为连接URI。我仍然想提供其他JDBC属性,但它们按上述更改方式提供,并且看起来支持以这种方式传递属性是个好主意。

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

谢谢

1 个回答

+1

已选定
 
最佳答案

根据 clojure.java.jdbc 的说明文档:该项目现在是“稳定”状态(不再是“活跃”)。它已被 seancorfield/next.jdbc 项目所取代。

next.jdbc 取用了另一种创建数据源和连接的方法,所以我认为你可能会遇到相似的问题,但我在那个项目中会乐意解决这个问题。请随意在那里创建一个 GitHub 问题进行讨论。

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

我认为允许包含 :jdbcUrl 的 db-spec(与 ->pool 使用方式匹配)将可以解决这个问题。
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 函数。
...