मुझे नहीं लगता कि कनेक्शन के साथ कुछ भी खुला है। डॉक्टर और न ही स्रोत यह सुझाव देते हैं, और 2.3 में मैं क्वेरी चलाने के बाद db निरीक्षण करके इसकी पुष्टि करने में सक्षम था। स्रोत इस तरह दिखता है:
(defn with-connection*
"Evaluates func in the context of a new connection to a database then
closes the connection."
[db-spec func]
(with-open [^java.sql.Connection con (get-connection db-spec)]
(binding [*db* (assoc *db* :connection con :level 0 :rollback (atom false))]
(func))))
कनेक्शन पूलिंग lazily उन्हें बनाने में उपयोगी हो सकता है, लेकिन है कि उन्हें खुला नहीं रखता है। कनेक्शन सेटटेबल बनाना आवश्यक प्रतीत होता है। हालांकि नवीनतम एपीआई सिर्फ कनेक्शन बनाने और प्रत्येक कॉल में इसे पारित करने पर जोर देती है। अभी भी अल्फा, यह इस पुस्तकालय के लिए भविष्य की तरह दिखता है (और कनेक्शन पूलिंग के साथ अभी भी संगत है)। पुस्तकालय का विकी से:
(require '[clojure.java.jdbc :as j]
'[clojure.java.jdbc.sql :as s])
(def mysql-db {:subprotocol "mysql"
:subname "//127.0.0.1:3306/clojure_test"
:user "clojure_test"
:password "clojure_test"})
(j/insert! mysql-db :fruit
{:name "Apple" :appearance "rosy" :cost 24}
{:name "Orange" :appearance "round" :cost 49})