gpt4 book ai didi

clojure - 在 Clojure 中存储全局连接的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-04 18:12:10 24 4
gpt4 key购买 nike

我有以下文件作为从我的 API 端点访问我的数据库的访问点。在服务器的生命周期内维护单个连接(或连接池?)的正确方法是什么?

(ns my-api.repository
(:require [clojure.java.jdbc :as sql]))

(defn some-query
(sql/with-connection (System/getenv "DATABASE_URL")
(sql/with-query-results results
;; You get the picture
)))

最佳答案

DATABASE_URL存储,如果您使用 with-connection单个连接的宏。您可以使用 c3p0连接池库:

(defn pooled-spec
"return pooled conn spec.
Usage:
(def pooled-db (pooled-spec db-spec))
(with-connection pooled-db ...)"
[{:keys [classname subprotocol subname user password] :as other-spec}]
(let [cpds (doto (ComboPooledDataSource.)
(.setDriverClass classname)
(.setJdbcUrl (str "jdbc:" subprotocol ":" subname))
(.setUser user)
(.setPassword password))]
{:datasource cpds}))

关于clojure - 在 Clojure 中存储全局连接的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11571433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com