Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Close connections when using a datasource directly, or don't let it be used directly.

未关闭
#38 0 条评论 4 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
clojure
领域
databases

调研方向

从 issue 中描述的 javax.sql.DataSource 对应的 proto/IConnection 实现以及 jdbc/fetch 和 jdbc/connection 入口点开始。将直接使用 datasource 的示例与使用 with-open 连接的示例进行比较;完成意味着直接使用不再泄漏连接或被拒绝,同时包装形式继续正常工作。

由索引模型根据 Issue 内容生成。

描述

javax.sql.DataSource implements the proto/IConnection protocol, but it's difficult to see how directly using it like that is anything but a misfeature. This protocol implementation lets you do the following:

(jdbc/fetch datasource "select whatever from whatever;")

If you do this, the connection that gets created will never get closed. You need to wrap the whole thing in a with-open, jdbc/connection like this:

(with-open [conn (jdbc/connection datasource)]
  (jdbc/fetch conn "select whatever from whatever;"))

Seeing as how the first snippet is always a bad idea, it shouldn't be possible to write the first and have it succeed at all. If we're supposed to go through the connection wrapper jdbc/connection, then the api should force us to do exactly that and not silently succeed when misused.

主要语言
Clojure
星标
106
派生
23
PR 合并指标
30 天内没有已合并 PR

环境准备

我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

funcool/clojure.jdbc 的其他 Issue

查看 funcool/clojure.jdbc 的全部 Issue

相似的 Issue

更多 Clojure Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。