2024 Clojure状态调查!”中分享您的想法。

欢迎!请查看关于页面以了解更多关于此功能的信息。

0投票
java.jdbc

你好

在java.jdbc中,当使用原始连接URI时,无法传递属性,它们必须包含在URI中,除非是用户名和密码,可以来自db-spec,因为有特定的构造函数可以接受用户名和密码。然而,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,很好知道当我们开始使用它时它将得到支持。
by
为了其他人的便利,只需使用clojure.java.jdbc支持的datasource。我们已经在使用连接池的环境中,但我们有一些应用程序没有使用池,但仍可以使用datasource来运行。

对于这些应用程序,我们使用next.jdbc的get-datasource函数创建datasource(其中包含上述更改,因此我们可以使用带有属性的jdbc uri,感谢!),但暂时使用该datasource与clojure.java.jdbc一起工作,直到我们可以迁移。
by
很高兴这对你有效,Donovan!我们也是一个c.j.j. / next.jdbc混合店,我们有c3p0连接池用于所有(旧)代码,所以我们只是将(:datasource pooled-db)传入next.jdbc函数。
...