No creo que la conexión tenga nada abierto. Doc ni fuente lo sugieren, y en 2.3 pude confirmarlo inspeccionando db después de ejecutar consultas. La fuente es el siguiente:
(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))))
La agrupación de conexiones puede ser útil en la creación de pereza, pero eso no se sostiene abiertos. Hacer la conexión configurable parece ser necesaria. Sin embargo, la API más reciente enfatiza la creación de la conexión y su transferencia a cada llamada. Mientras todavía ALPHA, parece el futuro de esta biblioteca (y aún es compatible con la agrupación de conexiones). A partir de la biblioteca de wiki:
(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})